郵局協議

【郵局協議】本文檔的狀態:
本文檔提出了一個實現工作站從郵件服務器動態收取郵件的簡單協議 。本文檔提出了一個用于ARPA(Advanced Research Projects Agency (美國國防部)高級研究計劃)的Internet社區的協議 。它需要進一步進行討論和建議 , 以進行進一步的改進 。
1. 介紹:
Post Office Protocol (POP)的目的是答應工作站用戶從郵件服務器中收取郵件 。而工作站發送郵件到郵件服務器預期經由Simple Mail Transfer Protocol(SMTP)協議實現 。了解更進一步的信息 , 請參閱RFC-821,RFC-822 。
本文檔處于測試階段 , 并且本協議是基于TCP實現的 。
2. 協議:
本協議為:郵件服務器開始偵聽連接 。當連接被打開時 , 服務器發送一個問候信息并且等待命令 。當命令接收到時 , 服務器執行并且返回一個回應 。
客戶端打開一個連接 。等待問候信息 。然后發送USER 和 PASS 命令以確認到達郵箱的權限 ??蛻舳税l送RDEL命令(從郵箱中閱讀并且刪除所有的消息)或者RETR 命令(僅僅簡單地從郵箱中閱讀消息)開始一個郵件閱讀處理 。服務器打開郵箱 , 加鎖 。然后向客戶端返回郵箱中所有消息的字符數 。客戶端發送RCEV命令來請求郵件數據 。服務器返回相應的郵件數據 。當所有的郵件全部接收到時 , 客戶端發送RCVD命令 。假如處理開始是客戶端發送的事RDEL命令 , 那么服務器將在此時刪除所有的郵件 。不論在那種情況 , 服務器將關閉郵箱并且解鎖 ??蛻舳税l送QUIT命令來終止會話 。

一般情況:
客戶端 服務器
---------- ------------
偵聽連接
打開連接 -->
*OK
等待命令
USER Fred -->
*OK
等待命令
PASS passWord -->
*OK
等待命令
(打開并且對郵箱加鎖)
RDEL mailbox -->
* #xxx
等待命令
RCEV -->
* 發送一個郵件的拷貝
等待命令
RCVD --> (從郵箱中刪除郵件 , 解鎖并關閉郵箱)
*OK
等待命令
QUIT -->
*OK
關閉連接 --> <-- 關閉連接
偵聽新的連接(回到開始)
命令和回應的對應
命令和回復摘要
命令 回應
----------------- -------------------
USER nameOK
PASS password -Error
RETR mailbox #xxx
RCEV
RCVD
QUIT
NOOP
RSET
USER name
該命令用于向服務器標志身份 。他后面必須跟有PASS命令
可能的回應: " OK" 或者 "-ERR"
PASS password
PASS 命令用于發送用戶的驗證口令 。USER和PASS命令用于服務器控制訪問郵箱的權限 。
可能的回應: " OK" 或者 "-ERR"
RETR mailbox
該命令將開始一個閱讀郵件處理 。RETR命令用于閱讀郵箱中的郵件而不刪除它們 。他后面必須跟有RCEV命令
可能的回應: " xxx" 或者 "-ERR"
RDEL mailbox
該命令將開始一個閱讀郵件處理 。RETR命令用于閱讀郵箱中的郵件并且刪除它們 。他后面必須跟有RCEV命令
可能的回應: " xxx" 或者 "-ERR"
RCEV
該命令用于確認客戶端已經預備好接受郵件數據 , 他后面必須跟有RCVD命令 。
可能的回應: " OK" 或者 連接中斷
RCVD
該命令用于確認客戶端已經接收到并且接受了郵件數據 。RCVD命令終止郵件閱讀處理 , 假如是一個RDEL處理 , 有可能郵件并不是必須刪除 。這將由發送一個錯誤回復來指示 。
可能的回應: " OK" 或者 "-ERR"
QUIT
該命令指示客戶端已經完成了這個會話 , 服務器將發送一個“ OK"回復然后關閉連接
可能的回應: " OK" 然后關閉連接
NOOP
這是一個不完成任何操作的命令 , 除了服務器發送一個OK 回復外 , 它不會在服務器上引發任何操作。

推薦閱讀