三個重要的郵件傳輸協議之POP3

【三個重要的郵件傳輸協議之POP3】POP3協議規范
對于在網絡上的比較小的結點,支持消息傳輸系統(mts)是不實際的 。例如,一臺工作站可能不具有充足的資源答應smtp服務器和相當的本地郵件傳送系統保持序駐留,并持續運行 。同樣的,將一臺個人計算機長時間連接在ip類型網絡上的費用也是可觀的(結點缺少的資源被稱為"聯絡性") 。
雖然如此,在這樣的小結點上答應治理郵件是十分有用的,并且這些結點經常支持一個用戶代理來治理郵件 。為解決這一問題,能夠支持mts的結點就為這些不能支持的結點提供了郵件存儲功能 。
郵局協議-版本3就是使這樣的工作站可以用一種比較實用的方法來訪問存儲于服務器上的儲存郵件 。通常,這意味著工作站可以從服務器上取得郵件,而服務器為它暫時保存郵件 。在下文中,客戶主機指的是利用pop3服務的主機,而服務器主機指的是提供pop3服務的主機 。
簡單說明
在此文檔中不指明客戶主機如何將郵件送入到傳送系統中去 。但這里有一個說明:當用戶代理需要將信息送到傳送系統時,它在接力主機上建立smtp連接(這些接力主機可以是pop3主機,也可以不是) 。
基本操作
初始時,服務器通過偵聽tcp端口110開始pop3服務 。當客戶主機需要使用服務時,它將與服務器主機建立tcp連接 。當連接建立后,pop3發送確認消息 ??蛻艉蚿op3服務器相互(分別)交換命令和響應,這一過程一直要持續到連接終止.pop3命令由一個命令和一些參數組成 。所有命令以一個crlf對結束 。命令和參數由可打印的ascii字符組成,它們之間由空格間隔 。命令一般是三到四個字母,每個參數卻可達40個字符長 。
pop3響應由一個狀態碼和一個可能跟有附加信息的命令組成 。所有響應也是由crlf對結束 ?,F在有兩種狀態碼,"確定" (" ok")和"失敗" ("-err") 。對于特定命令的響應是由許多字符組成的 。在這些情況中,下面一一表述:在發送第一行響應和一個crlf之后,任何的附加信息行發送,他們也由crlf對結束 。當所有信息發送結束時,發送最后一行,包括一個結束字符(十進制碼46,也就是".")和一個crlf對 。假如信息中的任何一行以結束字符開始,此行就是通過在那一行預先裝入結束而進行字符填充的 。因此,多行響應由五個crlf.crlf 結束 。
當檢測多行響應時,客戶檢測以確認此行是否以結束字符開始 。假如是的,而且其后的字符不是crlf,此行的第一個字符(結束字符)將被拋棄;假如其后緊跟crlf,從pop服務器來的響應終止,包括.crlf 的行也不被認為是多行響應的一部分了 。在生命周期中,pop3會話有幾個不同的狀態 。一旦tcp連接被打開,而且pop3服務器發送了確認信息,此過程就進入了"確認"狀態 。在此狀態中,客戶必須向pop3服務器確認自己是其的客戶 。
一旦確認成功,服務器就獲取與客戶郵件相關的資源,此時這一過程進入了"操作"狀態 。在此狀態中,客戶提出服務,當客戶發出quit命令時,此過程進入了"更新"狀態 。在此狀態中,pop3服務器釋放在"操作"狀態中取得的資源,并發送消息,終止連接 。pop3服務器可以擁有一個自動退出登錄的記時器 。此記時器必須至少可以記錄10分鐘 。這樣從客戶發送的消息才可能刷新此記時器 。當記時器失效時,pop3會話并不進入"更新"狀態,而是關閉tcp連接,而且不刪除任何消息,不向客戶發送任響應
"確認"狀態
一時tcp連接由pop3客戶打開,pop3服務器發送一個單行的確認 。這個消息可以是由crlf結束的任何字符 。例如,它可以是: s:ok pop3 server ready 注重:這個消息是一個pop3應答 。pop3服務器應該給出一個"確定"響應作為確認 。此時pop3會話就進入了"確認"狀態 。此時,客戶必須向服務器證實它的身份 。在文檔中介紹兩種可能的處理機制,一種是user和pass命令,另一種是在后面要介紹的apop命令 。

推薦閱讀