-
POP3
鎖定
- 中文名
- 郵局協議版本3
- 外文名
- Post Office Protocol - Version 3
- 縮 寫
- POP3
- 定義者
- RFC1939 定義
- 支 持
- 客户端遠程管理電子郵件
- 作 用
- 只下載郵件,服務器端並不刪除
POP3協議特性
POP3協議默認端口:110
POP3協議默認傳輸協議:TCP
POP3協議適用的構架結構:C/S
POP3協議的訪問模式:離線訪問
POP3協議示意如下圖所示。
POP3原理
POP3適用範圍
POP適用於C/S結構的脱機模型的電子郵件協議,已發展到第三版,稱POP3。脱機模型即不能在線操作,POP不支持對服務器郵件進行擴展操作,此過程需要更高級的IMAP4協議來完成。支持POP協議使用ASCII碼來傳輸數據消息,這些數據消息可以是指令,也可以是應答。
POP3POP協議
協議支持離線郵件處理,當郵件發送到服務器後,電子郵件客户端會調用郵件客户端程序,下載所有未閲讀的電子郵件(這種離線訪問模式是一種存儲轉發服務).當郵件從郵件服務器發送到個人計算機上,同時郵件服務器會刪除該郵件(但是很多POP3服務器都支持“下載郵件,服務器並不刪除郵件”,也就是説在POP3中改進了POP協議).
POP3命令響應
POP3客户向POP3服務器發送命令並等待響應,POP3命令採用命令行形式,用ASCII碼錶示。服務器響應是由一個單獨的命令行組成或多個命令行組成,響應第一行以ASCII文本+OK或-ERR(OK指成功,-ERR指失敗)指出相應的操作狀態是成功還是失敗。
POP3三種狀態
認證狀態,處理狀態和更新狀態。當客户機與服務器建立連接時,客户機向服務器發送自己身份(這裏指的是賬户和密碼)並由服務器成功確認,即客户端由認可狀態轉入處理狀態,在完成列出未讀郵件等相應的操作後客户端發出quit命令,退出處理狀態進入更新狀態,開始下載未閲讀過的郵件到計算機本地之後最後重返認證狀態確認身份後斷開與服務器的連接。具體原理如下圖
等待連接身份確認quit命令
C——|認證|—————|處理|——————|更新|----S
|__________________________________|
重返認證狀態。
POP3命令語句
大多數POP客户端和服務端都是採用ASCII碼來明文發送用户名和密碼,在認證狀態下服務端等待客户端連接時,客户端發出連接請求,並把由命令構成的user/pass用户身份信息數據明文發送給服務端。
服務端確認客户端身份以後,連接狀態由認證狀態轉入處理狀態,為了避免發送明文口令的安全問題,有一種新的更為安全的認證方法,命名為APOP,使用APOP,口令在傳輸之前就被加密,當客户端與服務端第一次建立連接時,POP3服務器向客户端發送一個ASCII碼文本的問候,這個問候是由一串字符組成對每個客户機是唯一的,內容一般都是當地時間之類的。然後客户端把它的純文本口令附加到剛才接受的字符串之後,接着計算出新的字符串的MD5單出函數值的消息數據,最後客户機把用户名和MD5加密後的消息摘要作為APOP命令的參數一起發送到服務器。但是大多數windows上的郵件客户端不支持APOP協議。qpopper支持。
POP3POP3命令碼
命令 | 描述 |
USER [username] | 處理用户名 |
PASS [password] | 處理用户密碼 |
APOP [Name,Digest] | 認可Digest是MD5消息摘要 |
STAT | 處理請求服務器發回關於郵箱的統計資料,如郵件總數和總字節數 |
UIDL [Msg#] | 處理返回郵件的唯一標識符,POP3會話的每個標識符都將是唯一的 |
LIST [Msg#] | 處理返回郵件數量和每個郵件的大小 |
RETR [Msg#] | 處理返回由參數標識的郵件的全部文本 |
DELE [Msg#] | 處理服務器將由參數標識的郵件標記為刪除,由quit命令執行 |
RSET | 處理服務器將重置所有標記為刪除的郵件,用於撤消DELE命令 |
TOP [Msg# n] | 處理服務器將返回由參數標識的郵件前n行內容,n必須是正整數 |
NOOP | 處理服務器返回一個肯定的響應 |
QUIT | 終止會話 |
a.客户機希望結束這次會話
b.如果服務器處於‘處理’狀態,那麼將進入‘更新’狀態以刪除任何標記為刪除的郵件
c.導致由處理狀態到更新狀態,又重返認可狀態的轉變
d.如果這個命令發出時服務器處於‘認可’狀態,則結束會話,不進行‘更新’狀態。
POP3等待
POP3協議在TCP/110端口上等待客户連接請求。
[1]
POP3監聽
若密碼為明文,我如何監聽?下面的命令在服務器運行後在屏幕上顯示POP3連接及命令發送的過程:
#sniffit-a-A.-p110-b-s192.169.11.12
note:192.168.11.12是客户機IP地址
你需要事先安裝sniffit這個端口監聽程序
POP3中斷
考慮這種情況,若客户在收取郵件時,假定為15封信等待接收,但由於線路問題,收到第10封時斷線了,為什麼下次收時仍然從第一封開始,也即為什麼前10封沒有被從服務器上刪除掉?
任何郵件的刪除都必須在quit命令發出後對已標記為刪除的郵件執行刪除操作,由於中途斷線,仍處於處理狀態,沒有機會執行quit命令以進行狀態轉換。
POP3鎖定
pop3 session is locked by another session,please wait 10 minutes then try again.
由於非正常操作引起POP3程序內部機制鎖住該次會話。
POP3處理機制
Foxmail與OE(outlookexpress)的處理機制的不同。
a.假定服務器上有三封郵件等待客户機接收。用foxmail與OE的不同之處在於
foxmail每收一封標記刪除一封,而OE則等全部接收完後再全部標記為刪除最後執行quit命令。
FoxmailOE
-------------------------------
retr2retr3
dele2dele1
retr3dele2
dele3dele3
quitquit
想從服務器直接刪除;對第二封,想接收但不刪除,對第三封,這一次不想接收,分別標記後最後foxmail發出的命令是
dele1
retr2
quit
c.若沒有foxmail,正好有幾封很大的信堵住了,我不想接收,想直接刪除它,或者想查看這兩封是誰發的?
直接在windows的DOS窗口下用命令行操作,如:
#telnetmyispnet110
userusername
passpassword
list
dele3
dele5
quit
--
POP3操作指南
服務器允許符合POP3(PostOfficeProtocol,Version3郵件投遞協議,版本3)的郵件客户端連接Imail服務器。這些郵件客户端軟件包括OutlookExpress,Outlook,NetscapeMessenger或Communicator,Eudora,Pegasus,NuPOP,Z-Mail,FoxMail,TheBat,Kmail,和Unixmail
[2]
。
POP3客户端通常採用“off-line”離線方式訪問郵件服務器,會定時的訪問郵件服務器,下載郵件到客户的電腦上,然後和服務器斷開。一般的,郵件被臨時的存儲在服務器上,當客户端下載這些郵件後,它們將被服務器刪除,不再保留。對於那些總是在同一台電腦上閲讀郵件的用户來説,這種方式是十分適合得。另外一種方式,稱為“online”在線方式,即郵件客户端總是和服務器保持連接。郵件被保持在服務器上,客户端不下載郵件到客户機上,用户可以在線的閲讀保留在服務器上的郵件。那些經常使用不同電腦的用户適合於這種方式。ImailPOP3服務可以作為Windows NT服務,完全隱藏的運行或者可以以有某些交互的方式運行。該服務將一直運行即使你登出系統。IMail同時提供另外一種訪問方式IMAP4(InternetMessageAccessProtocolVersion4).IMAP4服務同時提供“在線”和“離線”訪問方式。Logging On登入缺省的,POP3服務利用系統賬號登入系統。你可以改變這種登入方式:
1、在控制面板,啓動Services小程序。
2、選擇IMailPOP3 Server服務然後點擊Startup。
3、(可選)選擇您希望的StartupType。
4、在LogOnAs中,選擇正確的登入賬號:IMailServerSystemAccount.如果您有郵件主機採用WindowsNT用户數據庫作為Imail用户數據庫,那麼你需要使用該賬號。AllowServicetoInteractwithDesktop.採用該賬號時,任何用户登入系統時,桌面上都會有一個Imail的圖標。
ThisAccount.採用這種方式時,如果你的主機中沒有采用WindowsNT用户數據庫的,你可以輸入你希望的用户賬號;確認該賬號是一個主機管理員。如果您有郵件主機是利用外部數據庫的,確認該賬號可以訪問外部數據庫。
1、在IMailAdministrator中,在左邊的面板中選擇“localhost”。
2、選擇“Services”目錄然後點擊POP3.POP3面板出現。
3、輸入以下描述的選項以配置POP3服務。
4、單擊按鈕Apply保存設置。
5、停止服務,等待5-10秒然後重新啓動服務。當你單擊按鈕Stop/Start後,將自動保存設置的改變。
POP3常見問題
1. POP3是什麼?有什麼作用?
負責接收郵件的用户代理稱為POP客户,負責發送郵件的服務器稱為POP服務器.
2. 為什麼需要POP3?
答: 通過POP3協議,收信人不需要參與到與郵件服務器之間的郵件讀取過程,簡化了用户操作. 收信人可以“離線”地進行郵件處理,很方便地接收,閲讀郵件.
3. 什麼是POP命令和應答?
答: POP客户使用POP命令向POP服務器發送請求,例如PASS命令傳送賬户密碼,RETR命令請求傳送郵件內容等.
POP服務器使用應答對此迴應,“+OK”表示命令成功,"-ERR"表示命令失敗,後面是簡單的文字説明,例如"+OK Password required for Bob" 表示USER命令成功執行,需要客户輸入密碼進行認證.
4. POP3協議有哪些狀態?
答: POP3有三種狀態: AUTHORIZATION(授權),TRANSACTION(處理),UPDATE(更新).
當TCP建立起來時,POP3進入"授權"狀態,客户需要使用USER/PASS進行身份驗證. 通過驗證後,POP3進入"處理"狀態,客户可以發送LIST,RETR等命令來查詢,獲取郵件. 當客户在此狀態下發送"UPDATE"命令後,POP3進入"更新"狀態,服務器處理完命令後又回到"授權"狀態.
5.服務器收到客户發送的DELE命令後,郵件是否立即從服務器上刪除?
答:服務器收到DELE命令後,僅僅將郵件標記為刪除,真正的刪除操作在更新狀態下執行. 如果還未進入到更新狀態,客户可以發送RSET命令撤消以前的DELE命令.
6. POP3中用户的密碼是明文傳送的,具有安全隱患,請問該怎麼辦?
答: POP3使用PASS命令傳送用户的密碼,並以明文傳送,因此具有安全隱患.
POP3提供另外一個命令APOP,可以安全傳輸用户密碼,避免了安全隱患.
- 參考資料
-
- 1. POP3協議命令原始碼及工作原理 .協議分析網[引用日期2012-10-19]
- 2. 常見郵箱的POP3設置及應用
- 3. POP3的操作指南及常用郵件收取軟件設置