1. 程式人生 > >POP3郵件接收協議介紹

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所示。

-

圖1 pop3狀態轉換圖

                                             ---建立連線---|認可|--認證成功--|處理|--執行QUIT--|更新| 
                                                                                                                             |_______ -QUIT結束_________________|

3、POP3命令

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基本協議的使用,這只是協議的傳輸部分,如果想實現連線,解析還需要依賴其他的模組,在此不一一介紹,以後有機會分享

參考引用:

https://blog.csdn.net/new_teacher/article/details/51392444