Javamail:获取最近一小时的消息

时间:2013-04-12 09:06:18

标签: java imap javamail

我想提取过去1小时内收到的邮件。我在这里查了一下 -

java imap fetch messages since a date

并尝试了以下内容 -

DateTime current = new DateTime();
DateTime oneHourLess = current.minusHours(1);

SearchTerm olderThan = new ReceivedDateTerm(ComparisonTerm.LT, current.toDate());
SearchTerm newerThan = new ReceivedDateTerm(ComparisonTerm.GT, oneHourLess.toDate());
SearchTerm andTerm = new AndTerm(olderThan, newerThan);
Message totalMess[] = inbox.search(andTerm);

但由于ReceivedDateTerm没有花时间考虑,我没有收到邮件。

有什么方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:6)

IMAP协议只提供当天的解决方案,没有时间。

答案 1 :(得分:3)

我们有类似的要求,我们所做的是使用SearchTerm来申请日期。然后,您可以使用getReceivedDate()过滤掉当天出现的旧内容。

另外,对我来说,getReceivedDate()作为null进入。我不得不使用getSentDate()和SentDateTerm