POP3重复接收邮件的问题研究

               在Outlook 2003中设置了在服务器上保留邮件副本之后,在pst文件中就会生成一个已经接收邮件的列表,称为UIDL缓存。UIDL是标志一个邮箱中唯一一封邮件的标志。这样客户端连接到POP3服务器之后,就可以通过POP3的UIDL命令检索服务器上的邮件,然后和本地的UIDL缓存比较,只接收本地没有的邮件,同时将接收下来的

邮件的UIDL缓存到PST文件中。

该存缓存的结构应该是由以下几部分组成

(1)账号配置文件标志
因为在Outlook 2003中可以配置多个POP3账号,将各个账号的邮件都接收到一个PST中,所以在此PST的UIDL缓存中,必须有标志是哪个POP3账户配置的字段。
此标志似乎在建立一个POP3账号的同时生成,我们无法看到。但应该不是从一开始,一直累加的。

(2)POP3服务器的标志
标志是从哪个服务器接收的邮件。这个标志取决于账号中POP3服务器的设置。

(3)邮件的UIDL
取自于POP3邮件服务器。

这样对于多个POP3账号配置的Outlook 就可以正常实现在每个POP3服务器上保留副本的功能

比如如果将POP3服务器的名字从一个改为另外一个(当然实际指向是同一个IP,同一个服务器),所有在服务器上的副本会重新接收下来,如果再将名字改变回去,

则不会再次重新接收,说明(2)的存在。

按照配置,一模一样再配置一个POP3账号,该帐号会将服务器上的副本会重新接收下来,说明(1)的意义。也就是如果配置了两个一模一样配置的POP3账号,所有

的邮件都会被接收两次,如果三个那就三次。因为重建的POP3的账号的配置文件标志不同于原来的,所以会将服务器上的副本会重新接收下来。现在还没有办法自

己设置账号配置文件标志。

也就是基于以上的理论,如果前端有两台POP3服务器做的是负载均衡,后段邮箱数据库只有一个。那么在POP3账号中使用负载均衡的公共名字,无论具体连接到的

是哪一个POP3服务器,都不会出现服务器上的副本会重新接收下来的情况。

因为:(1)和(2)都没有变化,只有变化的(3)的邮件才可以接收下来。

你可能感兴趣的:(邮件,职场,休闲,研究)