javax.mail.Message пытается извлечь сообщения для заданного диапазона дат - PullRequest
2 голосов
/ 24 февраля 2012

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

// Get a Store object that implements the specified protocol.
store = session.getStore(protocol);
//Connect to the current host using the specified username and password.
store.connect(hostName, userName, password);
folder = store.getFolder(folderName);
Message[] messages = folder.getMessages();

Однако это вернуло бы мне все сообщения в предоставленной папке. Есть ли способ, с помощью которого я могу узнать сообщения, которые я получил вчера в заданном диапазоне дат.

Любая помощь в этом отношении будет принята с благодарностью.

Спасибо

Vaibhav

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

См. Метод Folder.search () и множество поисковых терминов в пакете javax.mail.search.

Обратите внимание, что поиск IMAP выполняется на сервере, но имеет разрешение только по дням, а не по времени. Поиск POP3 выполняется путем загрузки всех сообщений клиенту и поиска там; вероятно, не то, что вы хотите сделать.

1 голос
/ 28 февраля 2012

После изменений, которые я сделал, чтобы сделать эту работу в соответствии с моими ожиданиями:

cal.add(Calendar.DAY_OF_MONTH, -1);

// We would get the bounce mails received yesterday

ReceivedDateTerm term  = new ReceivedDateTerm(ComparisonTerm.EQ,newDate(cal.getTimeInMillis()));

Message[] messages = folder.search(term)

Ура! Vaibhav

...