我用雷鸟使用POP3接收电子邮件。我有Thurnderbird配置离开邮件服务器上。比方说,有一天我使用POP3检索(RETR)10个电子邮件,然后我注销了一夜。一夜之间10多个消息被发送到我的邮箱。当我第二天早上火起来雷鸟,STAT命令应显示20条消息。然而,雷鸟应该下载第10条消息;它应该在消息11(或唯一标识符或UID用于消息11)开始。 Thunderbird会发送一个POP3 UIDL命令,然后比较UID的雷鸟昨天检索到的最后一条消息的UID。它会发现,最后UID用于消息10 UIDL列表匹配,然后Thunderbird会RETR 11RETR 12,等等。

在我的情况下,POP3 STAT命令显示我有POP服务器上5379级的消息。我已经收到关于他们的5000。出于某种原因,雷鸟想下载所有5379个消息,而不是开始于5001我试图调试这和一直在寻找雷鸟认为是最后的消息检索的UID的。

有谁知道雷鸟(在Windows上)存储最后UID,它会使用来比较UIDL(名单)?

有没有办法手动设置它,所以我可以强制雷鸟开始接近检索到5001的地方?

有帮助吗?

解决方案

雷鸟有一个称为 popstate.dat 包含UID,一个时间戳(历元文件),以及标志。该标志指示雷鸟是为相关联的消息执行的操作。

显然,雷鸟实际上并不像我上述工作。我认为雷鸟执行以下步骤。它发出了一个POP3 UIDL命令获取的UID的存储在POP服务器上的列表。然后,它比较该列表中的UID存储在popstate.dat。任何UID的已经不是popstate.dat要检索的新邮件。 UIDL命令将先前返回的邮件数和相关联的UID。然后雷鸟必须使用与UID的,它尚未检索到相关的消息数量做一个POP3 RETR命令。雷鸟还必须看看popstate.dat的标志,并采取了相关消息的任何行动。例如,标志d告诉雷鸟删除相关信息。所述f标志意味着雷鸟仅具有该消息的截短部分,应检索完整消息。

在一些点雷鸟更新与新邮件popstate.dat。我认为,这种情况发生在一个批量更新popstate.dat所有动作都完成后。也就是说,如果有10周新的消息,以检索,直到所有10条消息已经被检索,popstate.dat不被更新。

我想我的问题驻留在服务器上。显然,我们的基础设施升级到POP服务器的新版本和新的UID被分配的新版本。我popstate.dat把所有的旧的UID。该UIDL新的POP服务器发送的是雷鸟没有已经在popstate.dat上市5000+的UID列表。所以,雷鸟进行下载所有5000+的消息。如果新的POP服务器保留了旧UID的那么雷鸟会看到,我已经获取了大部分的5000+消息,并且将刚才下载的是我没有的人。我想大多数人在我的组织使用Outlook和不使用POP3,不论那个版本更新做POP服务器没有造成问题的那些用户。好像是需要一些额外的照顾,以确保新的服务器有相同的UID与旧服务器。生活和学习!

其他提示

哪个服务器软件的版本存在?

http://courier.sourcearchive.com/documentation /0.60.0-2/pop3dserver_8c-source.html

  

00718 **消息的UIDL实际上只是它的文件名,直到第一MDIRSEP字符

可能是你只需要更换UIDL的第一部分在popstate.dat换新?

有是一个扩展雷鸟查找重复和删除它们。例如基于消息的ID(其通常由邮件的原始发送者生成的,因此也没有与基础设施更新改变)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top