POP與伺服器
POP適用於C/S結構的脫機模型。脫機模型即不能線上操作,不像IMAP4(netscape支持IMAP4)當客戶機與伺服器連線並查詢新電子郵件時,被該客戶機指定的所有將被下載的郵件都將被程式下載到客戶機,下載後,電子郵件客戶機就可以刪除或修改任意郵件,而無需與電子郵件伺服器進一步互動。POP3客戶向POP3伺服器傳送命令並等待回響,POP3命令採用命令行形式,用ASCII碼錶示。
伺服器回響是由一個單獨的命令行組成,或多個命令行組成,回響第一行以ASCII文本+OK或-ERR指出相應的操作狀態是成功還是失敗在POP3協定中有三種狀態,認可狀態,處理狀態,和更新狀態。
POP3服務原理
當客戶機與伺服器建立聯繫時,一旦客戶機提供了自己身份並成功確認,即由認可狀態轉入處理狀態,
在完成相應的操作後客戶機發出quit命令,則進入更新狀態,更新之後最後重返認可狀態。如下圖
等待連線 身份確認 quit命令
—— |認可|————— |處理|——————|更新|
|__________________________________|
重返認可狀態
POP3命令碼如下:
命令 參數 狀態 描述
------------------------------------------
USER username 認可 此命令與下面的pass命令若成功,將導致狀態轉換
PASS password 認可
APOP Name,Digest 認可 Digest是MD5訊息摘要
------------------------------------------
STAT None 處理 請求伺服器發回關於信箱的統計資料,如郵件總數和總位元組數
UIDL [Msg#] 處理 返回郵件的唯一標識符,POP3會話的每個標識符都將是唯一的
LIST [Msg#] 處理 返回郵件數量和每個郵件的大小
RETR [Msg#] 處理 返回由參數標識的郵件的全部文本
DELE [Msg#] 處理 伺服器將由參數標識的郵件標記為刪除,由quit命令執行
RSET None 處理 伺服器將重置所有標記為刪除的郵件,用於撤消DELE命令
TOP [Msg#] 處理 伺服器將返回由參數標識的郵件前n行內容,n必須是正整數
NOOP None 處理 伺服器返回一個肯定的回響
------------------------------------------
QUIT None 更新