簡介
在Internet上使用電子郵件的早期,用戶如果要讀取郵件,必須先登錄到郵件伺服器上,不但速度慢,而且這些郵件伺服器基於文本,沒有友好的界面,使用不便。於是出現了一些郵件協定,可以使郵件訊息直接傳送到用戶自己的計算機上。在這些協定中使用最為廣泛的就是POP(Post Office Protocol,郵局協定)和IMAP(Internet Mail Access Protocol,網際網路郵件控制協定)。
POP是TCP/IP協定族中的一員,POP允許本地計算機上的用戶代理程式連線到郵件伺服器,將用戶的郵件取回到本地,這樣用戶就能在本地閱讀郵件了。本協定主要用於支持使用客戶端遠程管理在伺服器上的電子郵件。
創建一個分散式電子郵件系統有多種不同的技術支持和途徑:POP(郵局協定)、DMSP(分層式電子郵件系統協定)和 IMAP(網際網路信息訪問協定)。其中,POP 協定創建最早因此也最為人們了解;DMSP 具有較好的支持“無連線”操作的性能,但其很大程度上僅限於單個應用程式(PCMAIL);IMAP 提供了 POP 和 DMSP 的擴展集並提供對遠程郵件訪問的三種支持方式:離線、線上和無連線。
POP 協定支持“離線”郵件處理。其具體過程是:郵件傳送到伺服器上,電子郵件客戶端調用郵件客戶機程式以連線伺服器,並下載所有未閱讀的電子郵件。這種離線訪問模式是一種存儲轉發服務,將郵件從郵件伺服器端送到個人終端機器上,一般是 PC 機或 MAC。一旦郵件傳送到 PC 機或 MAC 上,郵件伺服器上的郵件將會被刪除。
POP誕生於1984年,POP 協定允許工作站動態訪問伺服器上的郵件,目前已發展到第三版,稱為POP3(Post Office ProtocolVersion 3,郵局協定第3版),由RFC 1939 定義 。
POP3 傳輸的是數據訊息,這些訊息可以是指令,也可以是應答。POP3 使用 TCP 作為傳輸協定,使用TCP的110號連線埠工作,它規定怎樣將個人計算機連線到Internet的郵件伺服器和下載電子郵件的電子協定。POP3允許用戶從伺服器上把郵件存儲到本地主機(即自己的計算機)上,同時刪除保存在郵件伺服器上的郵件,而POP3伺服器則是遵循POP3協定的接收郵件伺服器,用來接收電子郵件的。
POP3 並不支持對伺服器上郵件進行擴展操作,此過程由更高級的 IMAP4 完成。
協定特性
POP3協定定義位置:RFC 1939
POP3協定默認連線埠:110
POP3協定默認傳輸協定:TCP
POP3協定適用的構架結構:C/S
POP3協定的訪問模式:離線訪問
工作原理
POP協定
協定支持離線郵件處理,當郵件傳送到伺服器後,電子郵件客戶端會調用郵件客戶端程式,下載所有未閱讀的電子郵件(這種離線訪問模式是一種存儲轉發服務)。當郵件從郵件伺服器傳送到個人計算機上,同時郵件伺服器會刪除該郵件(但是目前很多POP3伺服器都支持“下載郵件,伺服器並不刪除郵件”,也就是說在POP3中改進了POP協定)。
POP3命令回響
POP3客戶向POP3伺服器傳送命令並等待回響,POP3命令採用命令行形式,用ASCII碼錶示。伺服器回響是由一個單獨的命令行組成或多個命令行組成,回響第一行以ASCII文本+OK或-ERR(OK指成功,-ERR指失敗)指出相應的操作狀態是成功還是失敗。
POP3三種狀態
認證狀態,處理狀態和更新狀態。當客戶機與伺服器建立連線時,客戶機向伺服器傳送自己身份(這裡指的是賬戶和密碼)並由伺服器成功確認,即客戶端由認可狀態轉入處理狀態,在完成列出未讀郵件等相應的操作後客戶端發出quit命令,退出處理狀態進入更新狀態,開始下載未閱讀過的郵件到計算機本地之後最後重返認證狀態確認身份後斷開與伺服器的連線。
常用命令
命令 | 參數 | 狀態 | 描述 |
user | username | 認可 | 此命令與下面的pass命令若成功,將導致狀態轉換 |
pass | password | 認可 | |
apop | name,digest | 認可 | 一種安全傳輸口令的辦法,執行成功導致狀態轉換。 |
stat | none | 處理 | 請求伺服器發回關於信箱的統計資料,如郵件總數和總位元組數 |
uidl | [msg#] | 處理 | 返回郵件的唯一標識符,pop3會話的每個標識符都將是唯一的 |
list | [msg#] | 處理 | 返回郵件數量和每個郵件的大小 |
retr | [msg#] | 處理 | 返回由參數標識的郵件的全部文本 |
dele | [msg#] | 處理 | 伺服器將由參數標識的郵件標記為刪除,由quit命令執行 |
rset | none | 處理 | 伺服器將重置所有標記為刪除的郵件,用於撤消dele命令 |
top | [msg#],n | 處理 | 伺服器將返回由參數標識的郵件前n行內容,n必須是正整數 |
noop | none | 處理 | 伺服器返回一個肯定的回響,不做任何操作。 |
quit | none | 更新 | 退出 |