IMAP:搜索UID大于X的邮件(或者通常在我上次搜索之后)

Par*_*and 16 email gmail imap gmail-imap

我正在编写一个脚本来分析我的邮箱,并希望定期检查新邮件.搜索条件是:给我UID大于X的所有电子邮件的UID,其中X是我处理的最后一封电子邮件的UID.

或者,更一般地说,我正在寻找一种仅在我上次搜索后才能看到消息的方法.

请注意,我不是在寻找看到/看不见的消息; 该脚本以只读方式打开邮箱,我希望它不会干扰我的标志等.

我知道我可以在IMAP搜索中指定一个日期,但其粒度似乎是白天,所以不完全是我需要的.

我开始使用Gmail作为IMAP服务器,但希望将来支持通用IMAP服务器.

有没有办法搜索UID大于X的电子邮件?或者从消息X开始指定所有消息的另一种方法?

Sim*_*yer 19

您可以将IMAP SEARCH用于UID.假设你最近获得的UID是1999年,我认为你会这样做:

SEARCH UID 2000:*

  • 只是想补充一点,"还要注意UID范围559:*总是包含邮箱中最后一条消息的UID,即使559高于任何分配的UID值.这是因为范围的内容是独立的范围端点的顺序.因此,任何带有*作为端点之一的UID范围表示至少一条消息(编号为UID最高的消息),除非邮箱为空." (3认同)