使用groovy阅读电子邮件(Java Mail)

时间:2011-01-09 04:56:00

标签: groovy javamail

我正在使用groovy来访问gmail并阅读收件箱。它是常规的JavaMail,不会在这里描述它。

为简单起见,在连接到商店后,我使用了这个:

folder.open(Folder.READ_ONLY)

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

这很好。

但是我遇到了性能问题。有时消息[]可能很大。有些文件夹包含1000多条消息,检查它们都需要时间。

我正在寻找一种更快捷的方式来获取最新的电子邮件(例如过去5天的邮件或类似的邮件)

当然我在每个msg中都有日期信息,我可以进行比较,但这样做效率不高,因为它会遍历整个集合。

有更好的方式来获取这些消息吗?

1 个答案:

答案 0 :(得分:1)

如果您使用标准SEARCH发出SINCE 04-JAN-2011命令,那么您将获得自1月4日以来交付的当前所选文件夹中的设置消息。 (SENTSINCE 04-JAN-2011将执行相同的操作,仅基于“日期”邮件标题。)

有些事情如下:

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