JavaMail:如何获取与时间戳相比较的新消息

时间:2011-01-10 19:24:08

标签: imap javamail

我正在尝试在某个时间戳之后收到消息,我编码的方式是由本网站的另一位程序员建议的:

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

问题是我从日期开始收到所有邮件,而不是具体时间。我想知道是否有一些解决方法来模仿这个。我的意思是,对于一个例子,如果我想从今天中午以来获得所有消息,我会得到那些消息,而不是那些在今天早上收到的消息。

提前致谢,

编辑:

关于这一点的新想法:也许某些日期操纵可以完成这项工作。我的意思是,比较时间戳中的分钟数并以编程方式过滤那些不符合条件的消息。我知道这不是最好的方式,但它可以奏效。

PS:我正在使用IMAP并尝试从Gmail发送邮件,但我想无论邮件服务器是什么,它都应该有效。

2 个答案:

答案 0 :(得分:10)

不幸的是,没有。在这种情况下,JavaMail类和IMAP的SEARCH命令takes only dates, not times正在使用IMAP协议(请参阅SINCESENTSINCE条件。)

答案 1 :(得分:2)

您可以使用setTime()方法查询特定时间。

示例:

setTime(timeInMilliseconds)