Pau*_*uld 8 pop3 thunderbird uidl
我使用Thunderbird接收使用POP3的电子邮件.我将Thurnderbird配置为在服务器上保留电子邮件.让我们说有一天我使用POP3检索(RETR)10封电子邮件,然后我退出当晚.隔夜再发10条消息发送到我的邮箱.当我第二天早上启动Thunderbird时,该STAT命令应显示20条消息.但是,Thunderbird不应该下载前10条消息; 它应该从消息11开始(或消息11的唯一标识符或UID).Thunderbird将发送一个POP3 UIDL命令,然后将UID与昨天检索到的最后一条消息Thunderbird的UID进行比较.它会发现,在过去的UID UIDL列表消息10相匹配,那么Thunderbird会RETR 11,RETR 12等.
就我而言,POP3 STAT命令显示我在POP服务器上有5379条消息.我已经收到了大约5000个.出于某种原因,Thunderbird想要下载所有5379个消息而不是从5001开始.我正在尝试调试它并且正在寻找Thunderbird认为是最后一条消息的UID.
有谁知道Thunderbird(在Windows上)存储最后一个UID的位置,它将用于与UIDL(列表)进行比较?
有没有办法手动设置它,所以我可以强制Thunderbird开始检索接近5001的某个地方?
Thunderbird 有一个名为popstate.dat的文件,其中包含 UID、时间戳(纪元)和标志。该标志指示 Thunderbird 对关联消息执行的操作。
显然,Thunderbird 实际上并不像我上面描述的那样工作。我认为 Thunderbird 会执行以下操作。它发送 POP3UIDL命令以获取存储在 POP 服务器上的 UID 列表。然后,它将此列表与存储在 中的 UID 进行比较popstate.dat。任何尚未出现的 UIDpopstate.dat都是要检索的新消息。UIDL 命令先前返回消息号和关联的 UID。RETR然后,Thunderbird 必须使用与尚未检索到的 UID 关联的消息号执行 POP3命令。Thunderbird 还必须查看其中的标志popstate.dat并针对相关消息采取任何操作。例如,该标志d告诉 Thunderbird 删除关联的消息。该f标志意味着 Thunderbird 只有消息的截断部分,应该检索完整的消息。
在某些时候,Thunderbird 会popstate.dat使用新消息更新。popstate.dat我认为这发生在所有操作完成后的批量更新中。也就是说,如果有 10 条新消息要检索,popstate.dat则在检索完所有 10 条消息后才会更新。
我认为我的问题出在服务器上。显然,我们的基础设施升级到了新版本的 POP 服务器,并且在新版本上分配了新的 UID。我的popstate.dat有所有旧的 UID。到新 POP 服务器的 UIDL 发送了 Thunderbird 未在 中列出的 5000 多个 UID 列表popstate.dat。因此,Thunderbird 继续下载所有 5000 多条消息。如果新的 POP 服务器保留了旧的 UID,那么 Thunderbird 就会发现我已经检索了 5000 多条消息中的大部分,并且会下载我没有的消息。我认为我的组织中的大多数人都使用 Outlook,而不使用 POP3,但是对 POP 服务器进行的版本更新并没有给这些用户带来问题。似乎需要额外小心以确保新服务器与旧服务器具有相同的 UID。活到老,学到老!
| 归档时间: |
|
| 查看次数: |
5436 次 |
| 最近记录: |