IMAP,POP3及Exchange協議講解

昨天論壇上有個用戶說他用POP3客戶端收到一封要求回執的郵件,但是他還沒有打開它,已讀回執就已經發出去了。於是他來求助這是怎麼回事。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

        這是一個已知問題,描述是POP3客戶端用戶在還沒有打開郵件時就會將已讀回執發出,閱讀後又會發送一份已讀回執,簡稱重複回執Duplicate Receipt)。

        微軟官方聲稱這個問題只存在於Exchange2007 SP3 RU3之前的版本,但就我發現的情況,Exchange2010和2013都有同樣的問題,我相信2016也是如此。不是說Exchange產品組不作爲,遲遲不修復這個‘Bug’,而是這是POP3協議自身的問題

        試想,服務器上的一封郵件是要求已讀回執的,然而這封郵件被取走了而服務器不知道客戶端上這封郵件“拆了還是沒拆”,他應該做出怎樣的判斷?很簡單,郵件一定是因爲要被讀取而被取走的。於是收件方就會收到如下的已讀回執:

Your message 

   To: Johnnie

   Subject: test - POP3

   Sent: Wednesday, August 30, 2017 3:46:51 PM  

 was read on Wednesday, August 30, 2017 3:47:03 PM 

        然後當你確實在POP3終端上查看了郵件,郵件的Unread標示位(Flag)在由1變0時會觸發已讀回執發送給發件人。相當於在郵件的某個屬性上嵌套了一個宏,於是發件人就又收到了一封回執:

Your message

    To:  [email protected]

    Subject:  test - POP3

    Sent:  8/30/2017 3:46 PM

was read on 8/30/2017 3:47 PM. 

        Exchange 2010之後EMS命令Set-PopSettings命令多了一個等待回執的參數(-Suppre***eadReceipt),意思是服務器先不默認取走狀態是已讀狀態,而是等收件人回執發到了服務端再看。然而等不來的回執,服務器默默發了以下第二封回執:

Your message 

   To: Johnnie 

   Subject: test - POP3

   Sent: 8/30/2017 3:47 PM. (UTC+08:00) 

was deleted without being read on 8/30/2017 3:47 PM. (UTC+08:00) 

        嗯。。。不算太壞吧,至少我們找到了特徵字段,下面只要定義傳輸規則丟棄含這個字段的郵件就可以防止POP的重複回執了。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


        饒了一大圈,是時候來說說三大郵件協議的工作原理:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

        POP3作爲三者中最老的協議,它會將郵件數據下載到第一個連接客戶本地,如果還有用戶想要連接下載的話,服務端已經沒有了。它的好處是應用廣泛;壞處是無法同步消息;一旦下載服務端即消失(你可以設置在服務端保存副本,但這並不改變協議的本質);無法同步聯繫人、日曆和子郵件目錄

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

        與POP3的單向通訊不同,IMAP會來回地與郵件服務器通訊。這就意味着當你將一封新郵件下載到臺式機的Outlook裏,它將同樣被下載到你的iPhone;如果你在iPad上閱讀了一封郵件,這封郵件在你筆記本上的狀態也會變爲“已讀”;包括移到其他目錄的郵件(即便不在收件夾下)也將被同步。這個協議的問題在於容錯性比較差。如果你的郵件賬戶同時有多個用戶需要訪問,IMAP可能並不是一個理想的協議。即如果用戶A下載了郵件,同一賬戶的用戶B將可能永遠看不到了。它的好處是全郵件同步;可同步Flag和待辦項目;易學易用。壞處是如果多用戶使用同一賬號,郵件同步可能在不同用戶間造成困惑

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

        Exchange協議可供用戶同步郵件、聯繫人、日曆及其他所有Exchange對象。由於這個協議需要部署Exchange服務器,因此通常爲公司或者機構賬號所用。它的好處是:全郵件同步;郵件保存在服務器上;支持絕大部分移動設備、聯繫人、日曆和數據同步;在服務器域中郵件可撤回並修改。壞處是必須部署昂貴的Exchange服務器;郵件管理員可以控制你的終端設備權限並能看到郵件收發狀態;同樣會有同步問題


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