POP3郵件接收協議介紹
一、POP3簡介
POP3(Post Office Protocol version3),即“郵局協議版本3”。是TCP/IP協議族中的一員,由RFC1939 定義。本協議主要用於支援使用客戶端遠端管理在伺服器上的電子郵件
二、POP3詳解
1、通訊過程
1)、建立和pop3郵件伺服器建立連線 通常是tcp連線,不同郵箱有不同的郵件伺服器地址,本文以126郵箱為例,郵件伺服器地址為 pop3.126.com 埠為 110 ,建立連線後郵件伺服器會回覆連線成功;
2)、客戶端向伺服器端發出各種命令,來請求各種服務(如查詢郵箱資訊,下載某封郵件等)。
3)、服務端解析使用者的命令,做出相應動作並返回給客戶端一個響應。
4)、通常步驟2和3會交替進行,來獲取郵件的資料。
5)、完成通訊,退出。
2、三個狀態
POP3協議中有三種狀態,認正狀態,處理狀態,和更新狀態。 命令的執行可以改變協議的狀態,而對於具體的某命令,它只能在具體的某狀態下使用,這些請參看表1和RFC193。
客戶機與伺服器剛與伺服器建立連線時,它的狀態為認證狀態;一旦客戶機提供了自己身份並被成功地確認,即由認可狀態轉入處理狀態; 在完成相應的操作後客戶機發出QUIT命令(具體說明見後續內容),則進入更新狀態,更新之後又重返認可狀態;當然在認可狀態下執行QUIT命令,可釋放連線。狀態間的轉移如圖 1所示。
-
---建立連線---|認可|--認證成功--|處理|--執行QUIT--|更新|
|_______ -QUIT結束_________________|
3、POP3命令
命令 | 引數 | 使用狀態 | 含義 |
---|---|---|---|
USER | Username(郵箱地址) | 認證 | 向伺服器傳送使用者名稱也就是郵箱的地址 |
PASS | Password(郵箱的登入密碼) | 認證 | 向伺服器傳送郵箱的密碼 驗證成功後郵箱伺服器會返回登入成功的訊息 |
STAT | (無) | 處理 | 請求伺服器發回關於郵箱的統計資料,如郵件總數和總位元組數 |
UIDL |
[Msg#](郵件號,下同) |
處理 |
返回郵件的唯一識別符號,POP3會話的每個識別符號都將是唯一的 |
LIST |
[Msg#] |
處理 |
返回郵件的唯一識別符號,POP3會話的每個識別符號都將是唯一的 |
RETR |
[Msg#] |
處理 |
返回由引數標識的郵件的全部文字 |
DELE |
[Msg#] |
處理 |
伺服器將由引數標識的郵件標記為刪除,由QUIT命令執行 |
TOP |
[Msg#] |
處理 |
伺服器將返回由引數標識的郵件的郵件頭+前n行內容,n必須是正整數 |
NOOP |
None |
處理 |
伺服器返回一個肯定的響應,用於測試連線是否成功 |
QUIT |
None |
處理、認證 |
1) 如果伺服器處於“處理”狀態,麼將進入“更新”狀態以刪除任何標記為刪除的郵件,並重返“認證”狀態。 2)如果伺服器處於“認證”狀態,則結束會話,退出連線 |
三、例項講解
1、命令列操作
[email protected]:~# telnet pop3.126.com 110
Trying 123.125.50.23...
Connected to pop3.126.idns.yeah.net.
Escape character is '^]'.
+OK Welcome to coremail Mail Pop3 Server (126coms[753e2252bd59b8c4a1c2eb6d5fe57cb3s])
user [email protected]
+OK core mail
pass ****************
+OK 1827 message(s) [310767720 byte(s)]
list 1
+OK 1 19993
uidl 1
+OK 1 1tbiEwqK8EntOtumLAAAss
retr 1
+OK 19993 octets
Received: from smtpcom.263xmail.com (unknown [211.150.64.23])
by mx6 (Coremail) with SMTP id JMmowLDLbATnVpBLQGv2RA--.5983S2;
Fri, 05 Mar 2010 08:57:11 +0800 (CST)
Received: from smtpcom.263xmail.com (localhost.localdomain [127.0.0.1])
by smtpcom.263xmail.com (Postfix) with ESMTP id 19A8B6B199
for <*********@126.com>; Fri, 5 Mar 2010 08:57:15 +0800 (CST)
X-ABS-CHECKED:1
X-KSVirus-check:0
。。。。。。。。。。。。。(中間省略)
------=_NextPart_000_0018_01CABC41.D85CD8A0--
.
quit
+OK core mail
Connection closed by foreign host.
2、網路抓包檢視協議
四、結束語
本文主要介紹POP3基本協議的使用,這只是協議的傳輸部分,如果想實現連線,解析還需要依賴其他的模組,在此不一一介紹,以後有機會分享