2011-01-09 123 views
0

我正在使用groovy来访问Gmail并阅读收件箱。这是普通的JavaMail,在这里不会描述它。用groovy阅读电子邮件(Java Mail)

所以为了简单起见,以后我连接到店里,我用这个:

folder.open(Folder.READ_ONLY) 

folder.messages.each { msg -> 
    ... 
    doSomething with msg 
... 
} 

这是工作的罚款。

但是我有一个性能问题。有时消息[]可能很大。某些文件夹包含超过1000条消息,检查它们都需要时间。

我正在寻找一种更快的方式来获得只有那些

当然

我有最新信息在每个味精和最近的(从过去5天或类似的东西,例如邮件)邮件我可以做我的比较,但是这样做效率不高,因为它会遍历整个集合。

有没有更好的方式来获得这些消息?

回答

1

如果您的JavaMail问题SEARCH命令的标准为SINCE 04-JAN-2011,您将从1月4日起恢复当前选定文件夹中的设置消息。 (SENTSINCE 04-JAN-2011会做同样的事情,只是基于“日期”邮件头。)沿此线

东西:

folder.search(new ReceivedDateTerm(ComparisonTerm.GE, sinceDate)); 
+0

它的工作,非常感谢,我不知道这个功能。尽管我没有测量速度,但速度明显提高,但它很明显。再次感谢 :-) – 2011-01-09 23:14:34