您的位置:首页 > 运维架构

office 2010/账户配置POP方是收取邮件,服务器上保留副本,收取一遍完成后,按F9,OUTLOOK重复收所有

2014-09-27 01:27 441 查看
问题分析:

我们分别收取了正常的POP3下载和您的pst文件的POP3下载的日志,在Pop3日志和etl 日志中对比了双方的行为,有唯一区别的是当再次点击下载后:

正常的行为是:

1. 等下载最后一封信下载完毕,会标记所有下载过的邮件为“已读”

2. 然后退出这个对话

3. 再次重新开启对话

4. 用户身份验证登录

5. 邮箱状态检查,这里会列出所有的邮件数量和总的大小

6. 然后服务器会响应所有邮件的UID, 这个UID就是邮件的特有标记。这个时候客户端会在本地对这些UID进行对比,如果都重合,那么就不再下载

7. 服务器还会列出所有邮件的ID号

8. 最后客户端发现都已经下载,就发送退出的指令

而在重现问题的时候,我们发现唯一不同的地方是第8点,客户端没有发送退出指令,而是直接发送了RETR指令,也就是下载邮件的指令。

没有任何的报错,甚至系统也不认为这是个错误行为。

因此,有以下几点是值得怀疑的:

1. POP3需要在单一目录中需要下载的邮件数量超出了最大的限制

2. 这个跟第一点类似,POP3的每个指令的等待响应时间是有限制的,是否在最后的检查邮件是否已下载的过程中,得不到服务器或者客户端本身自己的及时响应,因为要检查的数量太过于庞大。

针对这两点,微软做了一些测试:

1. 把POP3服务器的响应时间调大到5分钟,但是问题还是一样

2. 把inbox中6万多份邮件分出2万份到其他文件夹,问题就不再发生

由于每次测试都需要重新下载新的pst,因此还有一些测试没有测验。但是对于第二点,有可能应验了我的猜想,有些限制造成了重复下载邮件。

根据上述测试结果,初步调整了邮件数量的大小,因为pop3下载的目录是该邮箱的inbox目录。

1. 初步设定的值是转移5000份邮件到其他的目录,这样inbox里面的邮件数量是62000+ 左右的邮件。尝试去重复收发,没有发生问题

2. 因为对于POP3来说,存在客户端本地的只能是pst文件。而对于PST文件来说,有一个限制就是单个文件夹的邮件数量不可以超过65536

3. 针对于这个限制,我在inbox里面放置了65536个邮件,问题没有重现

4. 然后再添加一封邮件到inbox里面后,问题立即重现,客户端开始重新下载所有的邮件

问题解决:

从上述的实验结论可以看出,这个是对于pst可以保留的单一文件夹目录的数量限制造成的。

因为对于pop3来说,需要把所有的已下载邮件做已读标记,无非就是“1” 是已读,而“0”是未读。

而65536是pst所能支持的最大计数范围,一旦超过这个数字,比如65537,那么对于二进制来说,就开始重新归零,这样客户端会认为所有邮件都没有下载而重新开始。

您不妨在邮箱中来设置一下做测试,如果结论跟我所得的一样,解决的办法就是:

希望可以在这几个pop3的帐号中,不要有单一的目录邮件数量超过65536。可以对于不需要的邮件进行删除或者备份,这也是一个正确使用邮箱帐号的方法,而且在服务器端保留副本一般也是不推荐的。

对于outlook的mapi帐号来说,我们也不推荐单一目录的邮件数量超过5000,何况是pop3的帐号,而且数量来如此庞大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐