替代IMAP搜索命令

时间:2011-03-22 04:10:13

标签: java email search imap

我需要替代IMAP搜索命令“搜索1:*看不见未删除”,因为电子邮件服务器禁止搜索命令。我尝试使用“ A状态(看不见)”,但它总是返回零,尽管有未读消息。这个命令还有其他选择吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

您的问题是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命令可以导致   邮箱要在内部打开,因为这个   所选信息可通过其他方式获得   邮箱,STATUS命令不应该在上面使用   目前选择的邮箱。