4

我正在编写一个 IMAP 爬虫,它是开源应用程序的一部分,对于增量爬取,我想使用消息 UID 来确定我是否已经看到特定消息。

现在我发现2007 年的一篇文章说 IMAP UID 并不总是可靠的。更具体地说,如果设置了标志 UIDNOTSTICKY,则不能假设 UID 始终相同。所以我的问题是,我是否必须认真对待 UIDNOTSTICKY=true 的情况,或者 IMAP 服务器是否具有非粘性 UID 的遗留内容并且不再(广泛)使用?

4

1 回答 1

8

如果在 SELECT 或 EXAMINE 期间返回 UIDNOTSTICKY 响应代码,您还会看到邮箱上的 UIDVALIDITY 值(文件夹的 IMAP 术语)在您每次 SELECT 或 EXAMINE 邮箱时发生变化。但是无论如何,您都必须检查 UIDVALIDITY 的更改,因为不能保证邮箱的 UIDVALIDITY 是不可变的,并且任何此类更改都会使您的缓存 UID 无效。是的,UIDVALIDITY 值通常不会改变。但是您的代码将不得不处理这种情况,通过这样做,您还将涵盖 UIDNOTSTICKY 情况。

于 2010-12-30T03:24:44.773 回答