本文檔的狀態(tài):
本文檔提出了一個實現(xiàn)工作站從郵件服務器動態(tài)收取郵件的簡單協(xié)議。本文檔提出了一個用于ARPA(Advanced Research PRojects Agency (美國國防部)高級研究計劃)的Internet社區(qū)的協(xié)議。它需要進一步進行討論和建議,以進行進一步的改進。
1. 介紹:
Post Office Protocol (POP)的目的是答應工作站用戶從郵件服務器中收取郵件。而工作站發(fā)送郵件到郵件服務器預期經由Simple Mail Transfer Protocol(SMTP)協(xié)議實現(xiàn)。了解更進一步的信息,請參閱RFC-821,RFC-822。
本文檔處于測試階段,并且本協(xié)議是基于TCP實現(xiàn)的。
2. 協(xié)議:
本協(xié)議為:郵件服務器開始偵聽連接。當連接被打開時,服務器發(fā)送一個問候信息并且等待命令。當命令接收到時,服務器執(zhí)行并且返回一個回應。
客戶端打開一個連接。等待問候信息。然后發(fā)送USER 和 PASS 命令以確認到達郵箱的權限。客戶端發(fā)送RDEL命令(從郵箱中閱讀并且刪除所有的消息)或者RETR 命令(僅僅簡單地從郵箱中閱讀消息)開始一個郵件閱讀處理。服務器打開郵箱,加鎖。然后向客戶端返回郵箱中所有消息的字符數(shù)。客戶端發(fā)送RCEV命令來請求郵件數(shù)據(jù)。服務器返回相應的郵件數(shù)據(jù)。當所有的郵件全部接收到時,客戶端發(fā)送RCVD命令。假如處理開始是客戶端發(fā)送的事RDEL命令,那么服務器將在此時刪除所有的郵件。不論在那種情況,服務器將關閉郵箱并且解鎖。客戶端發(fā)送QUIT命令來終止會話。
一般情況:
客戶端 服務器
---------- ------------
偵聽連接
打開連接 -->
* +OK
等待命令
USER Fred -->
* +OK
等待命令
PASS passWord -->
* +OK
等待命令
(打開并且對郵箱加鎖)
RDEL mailbox -->
* #xxx
等待命令
RCEV -->
* 發(fā)送一個郵件的拷貝
等待命令
RCVD --> (從郵箱中刪除郵件,解鎖并關閉郵箱)
* +OK
等待命令
QUIT -->
* +OK
關閉連接 --> <-- 關閉連接
偵聽新的連接(回到開始)
命令和回應的對應
命令和回復摘要
命令 回應
----------------- -------------------
USER name +OK
PASS password -Error
RETR mailbox #xxx
RCEV
RCVD
QUIT
NOOP
RSET
USER name
該命令用于向服務器標志身份。他后面必須跟有PASS命令
可能的回應: "+OK" 或者 "-ERR"
PASS password
PASS 命令用于發(fā)送用戶的驗證口令。USER和PASS命令用于服務器控制訪問郵箱的權限。
可能的回應: "+OK" 或者 "-ERR"
RETR mailbox
該命令將開始一個閱讀郵件處理。RETR命令用于閱讀郵箱中的郵件而不刪除它們。他后面必須跟有RCEV命令
可能的回應: "+xxx" 或者 "-ERR"
RDEL mailbox
該命令將開始一個閱讀郵件處理。RETR命令用于閱讀郵箱中的郵件并且刪除它們。他后面必須跟有RCEV命令
可能的回應: "+xxx" 或者 "-ERR"
RCEV
該命令用于確認客戶端已經預備好接受郵件數(shù)據(jù),他后面必須跟有RCVD命令。
可能的回應: "+OK" 或者 連接中斷
RCVD
該命令用于確認客戶端已經接收到并且接受了郵件數(shù)據(jù)。RCVD命令終止郵件閱讀處理,假如是一個RDEL處理,有可能郵件并不是必須刪除。這將由發(fā)送一個錯誤回復來指示。
可能的回應: "+OK" 或者 "-ERR"
QUIT
該命令指示客戶端已經完成了這個會話,服務器將發(fā)送一個“+OK"回復然后關閉連接
可能的回應: "+OK" 然后關閉連接
NOOP
這是一個不完成任何操作的命令,除了服務器發(fā)送一個OK 回復外,它不會在服務器上引發(fā)任何操作 。
可能的回應: "+OK"
RSET
該命令將引發(fā)服務器中斷當前的處理并且返回等待命令(RDEL,RETR,QUIT,NOOP或者RSET其中的一個) 當中斷一個處理時,服務器必須注重正確的關閉郵箱和對郵箱解鎖。
可能的回應: "+OK"
3. 致謝
I would like to acknowledge the contributions of Jon Postel, Joel Goldberger, Dale Chase, and Michael Butler in the development of the Post Office Protocol.
4. 參考:
[1] Postel, J., "Simple Mail Transfer Protocol", RFC-821, USC/Information Sciences Institute, August 1982.
[2] Crocker, D., "Standard for the Format of ARPA-Internet Text Messages", RFC-822, University of Delaware, August 1982.
圖示:
+---+ +---+ +---+ +---+ +---+
Open +OK +OK +OK
-----> S --+--> C ------> S ------> C ------> S ---->+
^ USER PASS
+---+ +---+ +---+ +---+ +---+
-ERR -ERR
V V
+<-----------+<----------------+<----------------------+
V +---+ +---+
+-----> QUIT +OK
C ------> S ----->Close
+----->
^ +---+ +---+
V
+<-------------------------------------------------------------+
^
+---+ +---+ +---+ +---+ +---+ +---+
RETR #xxx RECV DATA RCVD +OK
+-> C ----> S -----> C ----> S ----> C ----> S --->+
Or ^
+---+ RDEL+---+ +---+ +---+ +---+ +---+
-ERR -ERR
V V
+<-------------+ Abort
V V V
+<---------------+-------------------+ +----->+
V
+---+ +---+
RSET +OK
+-----> C ------> S ----->+
+---+ +---+
V
+<----------------------------+
^
+---+ +---+
NOOP +OK
+-----> C ------> S ----->+
+---+ +---+
新聞熱點
疑難解答