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)的郵件纔可以接收下來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章