JavaMail: как получать новые сообщения, сравнивая с отметками времени - PullRequest
7 голосов
/ 10 января 2011

Я пытаюсь получать сообщения после определенной отметки времени, способ, которым я ее кодировал, был предложен другим программистом на этом сайте:

GregorianCalendar date = new GregorianCalendar();
SearchTerm newer = new ReceivedDateTerm(ComparisonTerm.GT,date.getTime());
Message msgs[] = folder.search(newerThen);

Проблема в том, что я получаю всесообщения с даты, а не конкретного времени.Мне было интересно, есть ли какой-то обходной путь, чтобы подражать этому.Я имею в виду, например, что если бы я хотел получать все сообщения с сегодняшнего дня в полдень, я бы получил эти сообщения по отдельности, а не те, которые были получены сегодня утром.

Заранее спасибо,

РЕДАКТИРОВАТЬ:

Новая мысль относительно этого: возможно, некоторые манипуляции с датами могли бы сделать работу.Я имею в виду, сравнивая минуты в метке времени и программно фильтруя те сообщения, которые не соответствуют критериям.Я знаю, что это не самый лучший способ, но он может работать.

PS: я использую IMAP и пытаюсь получать почту из gmail, но я думаю, что это должно работать независимо от того, какой почтовый сервер.

Ответы [ 2 ]

10 голосов
/ 10 января 2011

К сожалению, нет.В этом случае протокол IMAP используется классами JavaMail, а команда SEARCH IMAP принимает только даты, а не времена (см. Критерии SINCE и SENTSINCE).

2 голосов
/ 16 ноября 2011

Вы можете использовать метод setTime() для запроса определенного времени.

Пример:

setTime(timeInMilliseconds)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...