我正在使用groovy来访问gmail并阅读收件箱。它是常规的JavaMail,不会在这里描述它。
为简单起见,在连接到商店后,我使用了这个:
folder.open(Folder.READ_ONLY)
folder.messages.each { msg ->
...
doSomething with msg
...
}
这很好。
但是我遇到了性能问题。有时消息[]可能很大。有些文件夹包含1000多条消息,检查它们都需要时间。
我正在寻找一种更快捷的方式来获取最新的电子邮件(例如过去5天的邮件或类似的邮件)
当然我在每个msg中都有日期信息,我可以进行比较,但这样做效率不高,因为它会遍历整个集合。
有更好的方式来获取这些消息吗?
答案 0 :(得分:1)
如果您使用标准SEARCH
发出SINCE 04-JAN-2011
命令,那么您将获得自1月4日以来交付的当前所选文件夹中的设置消息。 (SENTSINCE 04-JAN-2011
将执行相同的操作,仅基于“日期”邮件标题。)
有些事情如下:
folder.search(new ReceivedDateTerm(ComparisonTerm.GE, sinceDate));