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

使用groovy(Java Mail)阅读电子邮件,groovy,jakarta-mail,Groovy,Jakarta Mail,我使用groovy是为了访问gmail和阅读收件箱。这是一个普通的JavaMail,这里将不进行描述 因此,为了简单起见,在我连接到商店后,我使用以下方法: folder.open(Folder.READ_ONLY) folder.messages.each { msg -> ... doSomething with msg ... } 这很好用 但是,我有一个性能问题。有时消息可能很大。有些文件夹包含1000多条消息,检查它们都需要时间 我正在寻找一种更快的方式,只

我使用groovy是为了访问gmail和阅读收件箱。这是一个普通的JavaMail,这里将不进行描述

因此,为了简单起见,在我连接到商店后,我使用以下方法:

folder.open(Folder.READ_ONLY)

 folder.messages.each { msg ->
    ...
    doSomething with msg
...
}
这很好用

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

我正在寻找一种更快的方式,只获取那些最新的电子邮件(例如最近5天的邮件或类似的邮件)

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


有更好的方法获取这些邮件吗?

如果您从2011年1月4日起让JavaMail发出标准为
搜索
命令,您将从1月4日起返回当前所选文件夹中设置的邮件。(
sent自2011年1月4日起将执行相同的操作,仅基于“日期”消息头。)

大致如下:

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

它起作用了,非常感谢,我不知道这个函数。速度有了明显的提高,尽管我没有测量,但这是显而易见的。再次感谢:-)