哪里雷鸟存储通过POP下载的最后一条消息的UID?
-
11-07-2019 - |
题
我用雷鸟使用POP3接收电子邮件。我有Thurnderbird配置离开邮件服务器上。比方说,有一天我使用POP3检索(RETR
)10个电子邮件,然后我注销了一夜。一夜之间10多个消息被发送到我的邮箱。当我第二天早上火起来雷鸟,STAT
命令应显示20条消息。然而,雷鸟应该下载第10条消息;它应该在消息11(或唯一标识符或UID用于消息11)开始。 Thunderbird会发送一个POP3 UIDL
命令,然后比较UID的雷鸟昨天检索到的最后一条消息的UID。它会发现,最后UID用于消息10 UIDL列表匹配,然后Thunderbird会RETR 11
,RETR 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(其通常由邮件的原始发送者生成的,因此也没有与基础设施更新改变)。