POP3協議命令原始碼及工作原理

2021-04-02 00:52:22 字數 3355 閱讀 4974

一 簡介:

1. pop適用於c/s結構的離線模型的電子郵件協議,目前已發展

(netscape支援imap4)

2. 當客戶機與伺服器連線並查詢新電子郵件時,被該客戶機指

電子郵件客戶機就可以刪除或修改任意郵件,而無需與電子郵件

伺服器進一步互動。

3. pop3客戶向pop3伺服器傳送命令並等待響應,pop3命令採用

命令列形式,用ascii碼 表示。

伺服器響應是由乙個單獨的命令列組成,或多個命令列組成,響

應第一行以ascii文字+ ok或-err指出相應 的操作狀態是成功還

是失敗

4. 在pop3協議中有三種狀態,認可狀態,處理狀態,和更新狀態。

當客戶機與伺服器建立聯絡時,一旦客戶機提供了自己身份並成

功確認,即由認可狀態轉入處理狀態, 在完成相應的操作後客

戶機發出quit命令,則進入更新狀態,更新之後最後重返認可

狀態。如下圖

等待連線 身份確認 quit命令

—— |認可|————— |處理|——————|更新|

|__________________________________|

重返認可狀態

5. 認可狀態的命令語句

一般情況下,大多數現有的pop3客戶與伺服器執行採用ascii明

文傳送使用者名稱和口令,在 認可狀態等

待客戶連線的情況下,客戶發出連線,並由命令user/pass對在網路上傳送明文使用者名稱和 口

令給伺服器

進行身份確認。一旦確認成功,便轉入處理狀態。

為了避免傳送明文口令的問題,有一種新的認證方法,命令為

apop,使用apop,口令在 傳輸之前被加密。

當第一次與伺服器連線時,pop3伺服器向客戶機傳送乙個ascii

碼問候,這個問候由一串字元組成對每個客戶機是唯一的,與當

時的時間有關,然後,客戶機把它的純文字口令附加到從伺服器接

收到的字串之後,然後計算出結果字串的md5單出函式訊息

摘要,客戶機把使用者名稱與md5訊息摘要作為apop命令的引數一起

傳送出去。

目前,大多數windows上的郵件客戶軟體不支援apop命令,qpopper支援。

6. 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 更新

a.客戶機希望結束這次會話

b.如果伺服器處於『處理』狀態,那麼將進入『更新』狀態以刪除任何標記為刪除的郵

件 c.導致由處理狀態到更新狀態,又重返認可狀態的轉變

d.如果這個命令發出時伺服器處於『認可』狀態,則結束會話,不進行『更新』狀態。

7. pop3協議在tcp/110埠上等待客戶連線請求。

8. 若密碼為明文,我如何監聽?

下面的命令在伺服器執行後在螢幕上顯示pop3連線及命令傳送的過程:

#sniffit -a -a. -p 110 -b -s 192.169.11.12

note: 192.168.11.12是客戶機ip位址

你需要事先安裝sniffit這個埠監聽程式

9. 考慮這種情況,若客戶在收取郵件時,假定為15封信等待接收,但由於線路問題,收

到第10封時斷線了,

為什麼下次收時仍然從第一封開始,也即為什麼前10封沒有被從伺服器上刪除掉?

任何郵件的刪除都必須在quit命令發出後對已標記為刪除的郵件執行刪除操作,由於中

途斷線,仍處於

處理狀態,沒有機會執行quit命令以進行狀態轉換。

10. pop3 session is locked by another session, please wait 10 minutes then t

ry again.

由於非正常操作引起pop3程式內部機制鎖住該次會話。

11. foxmail與oe(outlook express)的處理機制的不同。

a. 假定伺服器上有三封郵件等待客戶機接收。用foxmail與oe的不同之處在於

foxmail每收一封標記刪除一封,而oe則等全部接收完後再全部標記為刪除最後執行qui

t命令。

foxmail oe

-------------------------------

retr 1 retr 1

dele 1 retr 2

retr 2 retr 3

dele 2 dele 1

retr 3 dele 2

dele 3 dele 3

quit quit

b. foxmail的遠端郵件管理是非常優秀的管理工具,假定伺服器上有三封信,對第一封

,我們不想接收

想從伺服器直接刪除;對第二封,想接收但不刪除,對第三封,這一次不想接收,分別

標記後

最後foxmail發出的命令是

dele 1

retr 2

quit

c. 若沒有foxmail,正好有幾封很大的信堵住了,我不想接收,想直接刪除它,或者想

檢視這兩封是誰發的?

直接在windows的dos視窗下用命令列操作,如:

# telnet my.isp.net 110

user username

pass password

list

dele 3

dele 5

quit

POP3協議命令原始碼及工作原理

posted on 2007 08 22 16 43 伯樂共勉 一 簡介 1.pop適用於c s結構的離線模型的電子郵件 協議 目前已發展到第三版,稱 3.pop3 客戶向 pop3 伺服器傳送命令並等待響應,pop3 命令採用命令列形式,用ascii碼 表示。伺服器響應是由乙個單獨的命令列組成,或...

POP3協議命令原始碼及工作原理

任何郵件的刪除都必須在quit命令發出後對已標記為刪除的郵件執行刪除操作,由於中途斷線,仍處於 處理狀態,沒有機會執行quit命令以進行狀態轉換。10.pop3 session is locked by another session,please wait 10 minutes then try ...

POP3協議命令原始碼及工作原理

pop3協議命令原始碼及工作原理 一 簡介 1.pop適用於c s結構的離線模型的電子郵件協議,目前已發展到第三版,稱pop3。離線模型即不能在 線操作,不像imap4 netscape支援imap4 3.pop3客戶向pop3伺服器傳送命令並等待響應,pop3命令採用命令列形式,用ascii碼表示...