1. 程式人生 > >pop3協議的幾種狀態

pop3協議的幾種狀態

填充 一個 不能 主機 發送 部署 協議 ss命令 更新

研究郵件時關於Pop3協議的幾種處理狀態總結如下:
1、基本操作
  初始時,服務器通過偵聽TCP端口110開始POP3服務。當客戶主機需要使用服務時,它將與服務器主機建立TCP連接。當連接建立後,POP3發送確認消息。客戶和POP3服務器相互(分別)交換命令和響應,這一過程一直要持續到連接終止。
  POP3命令由一個命令和一些參數組成。所有命令以一個CRLF對結束。命令和參數由可打印的ASCII字符組成,它們之間由空格間隔。命令一般是三到四個字母,每個參數卻可達40個字符長。
  POP3響應由一個狀態碼和一個可能跟有附加信息的命令組成。所有響應也是由CRLF對結束。現在有兩種狀態碼,"確定" ("+OK")和"失敗" ("-ERR")。
  對於特定命令的響應是由許多字符組成的。在這些情況中,下面一一表述:在發送第一行響應和一個CRLF之後,任何的附加信息行發送,他們也由CRLF對結束。當所有信息發送結束時,發送最後一行,包括一個結束字符(十進制碼46,也就是".")和一個CRLF對。如果信息中的任何一行以結束字符開始,此行就是通過在那一行預先裝入結束而進行字符填充的。因此,多行響應由五個CRLF.CRLF 結束。當檢測多行響應時,客戶檢測以確認此行是否以結束字符開始。如果是的,而且其後的字符不是CRLF,此行的第一個字符(結束字符)將被拋棄;如果其後緊跟CRLF,從POP服務器來的響應終止,包括.CRLF 的行也不被認為是多行響應的一部分了。
  在生命周期中,POP3會話有幾個不同的狀態。一旦TCP連接被打開,而且POP3服務器發送了確認信息,此過程就進入了"確認"狀態。在此狀態中,客戶必須向POP3服務器確認自己是其的客戶。一旦確認成功,服務器就獲取與客戶郵件相關的資源,此時這一過程進入了"操作"狀態。在此狀態中,客戶提出服務,當客戶發出QUIT命令時,此過程進入了"更新"狀態。在此狀態中,POP3服務器釋放在"操作"狀態中取得的資源,並發送消息,終止連接。
  POP3服務器可以擁有一個自動退出登錄的記時器。此記時器必須至少可以記錄10分鐘。這樣從客戶發送的消息才可能刷新此記時器。當記時器失效時,POP3會話並不進入"更新"狀態,而是關閉TCP連接,而且不刪除任何消息,不向客戶發送任何響應。

2、"確認"狀態
  一時TCP連接由POP3客戶打開,POP3服務器發送一個單行的確認。這個消息可以是由CRLF結束的任何字符。例如,它可以是:
    S: +OK POP3 server ready
  註意:這個消息是一個POP3應答。POP3服務器應該給出一個"確定"響應作為確認。
  此時POP3會話就進入了"確認"狀態。此時,客戶必須向服務器證明它的身份。在文檔中介紹兩種可能的處理機制,一種是USER和PASS命令,另一種是在後面要介紹的APOP命令。
  用USER和PASS命令進行確認過程,客戶必須首先發送USER命令,如果POP3服務器以"確認"狀態碼響應,客戶就可以發送PASS命令以完成確認,或者發送QUIT命令終止POP3會話。如果POP3服務器返回"失敗"狀態碼,客戶可以再發送確認命令,或者發送QUIT命令。
  當客戶發送了PASS命令後,服務器根據USER和PASS命令的附加信息決定是否允許訪問相應的存儲郵件。
  一旦服務器通過這些數據決定允許客戶訪問儲存郵件,服務器會在郵件上加上排它鎖,以防止在進入"更新"狀態前對郵件的改變。如果成功獲得了排它鎖,服務器返回一個"確認"狀態碼。會話進入"操作狀態",同時沒有任何郵件被標記為刪除。如果郵件因為某種原因不能打開(例如,排它鎖不能獲得,客戶不能訪問相應的郵件或者郵件不能進行語法分析),服務器將返回"失敗"狀態碼。在返回"失敗"狀態碼後,服務器會關閉連接。如果服務器沒有關閉連接,客戶可以重新發送確認命令,重新開始,或者發送QUIT命令。
  在服務器打開郵件後,它為每個消息指定一個消息號,並以八進制表示每個消息的長度。第一個消息被指定為1,第二個消息被指定為2,以此類推,第N個消息被指定為N。在POP3命令和響應中,所以的消息號和長度以十進制表示。
  

4、"操作"狀態
  一旦客戶向服務器成功地確認了自己的身份,服務器將鎖住並打開相應的郵件,這時POP3會話進入"操作"狀態。現在客戶可以重復下面的POP3命令,對於每個命令服務器都會返回應答。最後,客戶發送QUIT命令,會話進入"更新"狀態。
下面是在"操作"狀態中可用的命令:

5、"更新"狀態
  當客戶在"操作"狀態下發送QUIT命令後,會話進入"更新"狀態。(註意:如果客戶在"確認"狀態下發送QUIT後,會話並不進入"更新"狀態。)
  如果會話因為QUIT命令以外的原因中斷,會話並不進入"更新"狀態,也不從服務器中刪除任何信件。

目前市場中郵件加密產品,大多需要重新註冊一個郵箱,或者重新部署一套郵件系統,導致原來的郵箱不能用,也就是說需要改變用戶習慣,對於大型公司來說郵件系統升級比較困難。

選擇對於用戶透明的郵件加密產品是個不錯的選擇,比如天禦雲安推出的隱秘郵在確保郵件內容加密的同時,部署對於用戶也是透明的,可以說非常人性化。
網址:https://mail.tyyunan.com/

pop3協議的幾種狀態