pop3協議的幾種狀態
1、基本操作
初始時,服務器通過偵聽TCP端口110開始POP3服務。當客戶主機需要使用服務時,它將與服務器主機建立TCP連接。當連接建立後,POP3發送確認消息。客戶和POP3服務器相互(分別)交換命令和響應,這一過程一直要持續到連接終止。
POP3命令由一個命令和一些參數組成。所有命令以一個CRLF對結束。命令和參數由可打印的ASCII字符組成,它們之間由空格間隔。命令一般是三到四個字母,每個參數卻可達40個字符長。
POP3響應由一個狀態碼和一個可能跟有附加信息的命令組成。所有響應也是由CRLF對結束。現在有兩種狀態碼,"確定" ("+OK")和"失敗" ("-ERR")。
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協議的幾種狀態