【问题标题】:Reading emails with groovy (Java Mail)使用 groovy (Java Mail) 阅读电子邮件
【发布时间】:2011-01-10 01:16:24
【问题描述】:

我正在使用 groovy 来访问 gmail 并阅读收件箱。是普通的JavaMail,这里不再赘述。

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

folder.open(Folder.READ_ONLY)

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

这工作正常。

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

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

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

有没有更好的方法来获取这些消息?

【问题讨论】:

    标签: groovy jakarta-mail


    【解决方案1】:

    如果您让 JavaMail 发出带有标准 SINCE 04-JAN-2011SEARCH 命令,您将在自 1 月 4 日以来发送的当前选定文件夹中取回设置的邮件。 (SENTSINCE 04-JAN-2011 会做同样的事情,只是基于“日期”消息头。)

    类似这样的事情:

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

    【讨论】:

    • 它成功了,非常感谢,我不知道这个功能。速度有明显的提升,虽然我没有测量,但是很明显。再次感谢:-)
    猜你喜欢
    • 2015-07-30
    • 1970-01-01
    • 2011-07-10
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多