【问题标题】:Can I download emails recived between dates in JavaMail (IMAP)?我可以下载 JavaMail (IMAP) 中日期之间收到的电子邮件吗?
【发布时间】:2013-10-08 03:35:08
【问题描述】:

有没有办法下载所有在日期之间收到的电子邮件?

即:

Date from = ...
Date to = ...
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);

Message[] messages = inbox.getMessages(from, to);

【问题讨论】:

    标签: java android jakarta-mail


    【解决方案1】:

    使用Folder#search(SearchTerm)。实现覆盖SearchTerm#match(Message) 方法的SearchTerm 的具体子类。如果 Message 的日期与您感兴趣的日期匹配,则返回 true。

    【讨论】:

    • 此搜索是由服务器还是应用程序进行的?
    • @user2365209 代码进入您的应用程序。 JavaMail 将调用您的代码来确定匹配的消息。然后,您可以使用该信息来获取符合您的参数的消息。
    • 这种方法会导致所有的搜索都在客户端完成。
    【解决方案2】:

    使用两个 ReceivedDateTerms 和一个 AndTerm 来搜索日期在两个值之间的消息。拥有 Message 对象后,您可以下载或访问所需的任何内容。

    【讨论】:

    • IMAP 协议只支持带天的日期,不支持时间。如果您需要根据时间进行搜索,您可以使用 Folder.search 将列表缩小到天,然后使用 Message.match 查找指定时间内的邮件。后者将通过下载每条消息所需的信息在客户端完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2011-04-09
    • 2015-10-19
    • 1970-01-01
    • 2011-09-26
    • 2012-04-19
    • 2020-03-02
    相关资源
    最近更新 更多