【问题标题】:Alternative for IMAP search commandIMAP 搜索命令的替代方案
【发布时间】:2011-07-20 04:35:57
【问题描述】:

我需要替代 IMAP 搜索命令“A search 1:* unseen not deleted”,因为电子邮件服务器禁止搜索命令。我尝试使用“A status (unseen)”,但它总是返回零,尽管有未读消息。该命令有其他选择吗?提前致谢。

【问题讨论】:

  • “禁止搜索命令”是什么意思?你是在做自己的 IMAP 客户端还是在使用 JavaMail?
  • 你好 dkarp,我使用 k9mail 作为我的电子邮件客户端。我发现搜索命令缺少 uid 参数。我没有使用“a search all”,而是使用了“a uid search all”,它可以工作。

标签: java email search imap


【解决方案1】:

您的问题是 IMAP 服务器根本不支持SEARCH,还是它不喜欢您的特定SEARCH 命令?如果是后者,我们可以简化:

A SEARCH UNSEEN UNDELETED

(因为1:* 是隐含的)。甚至更简单——以防服务器根本不喜欢将 SEARCH 术语放在一起——将是:

A SEARCH UNSEEN
B SEARCH DELETED

并在您的代码中逻辑地执行 AND。

蛮力的做法是:

C UID FETCH 1:* FLAGS

然后挑选出所有既不是\Seen 也不是\Deleted 的。 (我建议使用UID FETCH,因为类似的FETCH 命令将在空文件夹上返回BAD。)

另外,you're not supposed to call the STATUS command on the currently-selected folder:

注意:STATUS 命令旨在访问 当前选定以外的邮箱的状态 邮箱。因为 STATUS 命令会导致 邮箱要在内部打开,因为这 信息可通过其他方式在选定的 邮箱,状态命令不应该用于 当前选择的邮箱。

【讨论】:

    猜你喜欢
    • 2014-02-17
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2018-05-03
    • 2014-12-10
    相关资源
    最近更新 更多