【问题标题】:Need a way to search mail for a message id using imap需要一种使用 imap 在邮件中搜索消息 ID 的方法
【发布时间】:2009-08-28 12:59:54
【问题描述】:

我正在使用 Java Mail api 访问 gmail 帐户(未修复)。 我需要在所有邮件中搜索给定的 Mail id ()。 搜索应在具有给定 ID 的消息第一次出现时终止 (优化:给定的 id 应该只存在一个邮件)

我当然想跳过“所有邮件”文件夹。

最简单的方法是这样做:

  1. 获取默认文件夹
  2. 默认获取所有文件夹。
    1. 在当前文件夹中使用 MessageIDTerm 搜索
    2. 如果未找到消息,则对子文件夹递归重复第 2 步
    3. 否则返回找到的文件夹。

这会导致大量不必要的服务器调用浪费,有没有人有更优化的方法?

【问题讨论】:

    标签: java search email gmail imap


    【解决方案1】:

    自从我搞砸所有这些东西以来已经有很多年了,但你应该能够:

    • 使用IMAP4 UID 命令搜索给定的ID(或ID 范围)。参考RFC3501,栏目6.4.8
    • 将其与IMAPFolder 对象上的doCommand() 一起使用,并根据需要在您的文件夹中循环。

    【讨论】:

      【解决方案2】:
      folder.list("*");
      

      这是一种返回递归所有文件夹列表的方法。 所以我只需要为文件夹运行 1 个循环! 当然,在搜索中找到的每条消息都有一个循环。

      【讨论】:

        猜你喜欢
        • 2019-03-01
        • 2015-01-11
        • 1970-01-01
        • 2012-05-03
        • 2014-07-08
        • 2012-07-11
        • 2016-01-17
        • 2011-12-17
        • 1970-01-01
        相关资源
        最近更新 更多