有什么办法可以下载所有在日期之间收回的电子邮件吗?我可以下载JavaMail(IMAP)中日期之间收到的电子邮件吗?
即:
Date from = ...
Date to = ...
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
Message[] messages = inbox.getMessages(from, to);
有什么办法可以下载所有在日期之间收回的电子邮件吗?我可以下载JavaMail(IMAP)中日期之间收到的电子邮件吗?
即:
Date from = ...
Date to = ...
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
Message[] messages = inbox.getMessages(from, to);
使用Folder#search(SearchTerm)。实施一个覆盖SearchTerm#match(Message)方法的具体子类SearchTerm
。如果Message
的日期与您感兴趣的日期匹配,则返回true。
使用两个ReceivedDateTerms和AndTerm搜索日期介于两个值之间的消息。一旦你有消息对象,你可以下载或访问你需要的任何东西。
但是这是什么? http://stackoverflow.com/a/7014977/2365209 – user2365209
IMAP协议只支持日期而不是时间。如果您需要基于时间进行搜索,则可以使用Folder.search将列表缩小到几天,然后使用Message.match在指定的时间内查找消息。后者将通过下载每条消息所需的信息在客户端完成。 –
此搜索是由服务器或应用程序? – user2365209
@ user2365209代码放在您的应用程序中。 JavaMail将调用您的代码来确定哪些消息匹配。然后,您可以使用该信息来获取适合您参数的消息。 –
这种方法将导致所有的搜索都在客户端完成。 –