一 簡(jiǎn)介:
1. POP適用于C/S結(jié)構(gòu)的脫機(jī)模型的電子郵件協(xié)議,目前已發(fā)展到第三版,稱POP3。脫機(jī)模型即不能在線 操作,不像IMAP4(netscape支持IMAP4)
2. 當(dāng)客戶機(jī)與服務(wù)器連接并查詢新電子郵件時(shí),被該客戶機(jī)指定的所有將被下載的郵件都將被程序下載到 客戶機(jī),下載后,電子郵件客戶機(jī)就可以刪除或修改任意郵件,而無需與電子郵件服務(wù)器進(jìn)一步交互。
3. POP3客戶向POP3服務(wù)器發(fā)送命令并等待響應(yīng),POP3命令采用命令行形式,用ASCII碼表示。 服務(wù)器響應(yīng)是由一個(gè)單獨(dú)的命令行組成,或多個(gè)命令行組成,響應(yīng)第一行以ASCII文本+OK或-ERR指出相應(yīng) 的操作狀態(tài)是成功還是失敗
4. 在POP3協(xié)議中有三種狀態(tài),認(rèn)可狀態(tài),處理狀態(tài),和更新狀態(tài)。 當(dāng)客戶機(jī)與服務(wù)器建立聯(lián)系時(shí),一旦客戶機(jī)提供了自己身份并成功確認(rèn),即由認(rèn)可狀態(tài)轉(zhuǎn)入處理狀態(tài), 在完成相應(yīng)的操作后客戶機(jī)發(fā)出quit命令,則進(jìn)入更新狀態(tài),更新之后最后重返認(rèn)可狀態(tài)。如下圖
等待連接 身份確認(rèn) quit命令 —— |認(rèn)可|————— |處理|——————|更新| |__________________________________| 重返認(rèn)可狀態(tài)
5. 認(rèn)可狀態(tài)的命令語(yǔ)句 一般情況下,大多數(shù)現(xiàn)有的POP3客戶與服務(wù)器執(zhí)行采用ASCII明文發(fā)送用戶名和口令,在認(rèn)可狀態(tài)等 待客戶連接的情況下,客戶發(fā)出連接,并由命令user/pass對(duì)在網(wǎng)絡(luò)上發(fā)送明文用戶名和口令給服務(wù)器 進(jìn)行身份確認(rèn)。一旦確認(rèn)成功,便轉(zhuǎn)入處理狀態(tài)。 為了避免發(fā)送明文口令的問題,有一種新的認(rèn)證方法,命令為APOP,使用APOP,口令在傳輸之前被加密。 當(dāng)?shù)谝淮闻c服務(wù)器連接時(shí),POP3服務(wù)器向客戶機(jī)發(fā)送一個(gè)ASCII碼問候,這個(gè)問候由一串字符組成對(duì)每個(gè)客 戶機(jī)是唯一的,與當(dāng)時(shí)的時(shí)間有關(guān),然后,客戶機(jī)把它的純文本口令附加到從服務(wù)器接收到的字符串之后, 然后計(jì)算出結(jié)果字符串的MD5單出函數(shù)消息摘要,客戶機(jī)把用戶名與MD5消息摘要作為APOP命令的參數(shù)一起發(fā)送 出去。 目前,大多數(shù)windows上的郵件客戶軟件不支持APOP命令,qpopper支持。
6. POP3命令碼如下: 命令 參數(shù) 狀態(tài) 描述 ------------------------------------------ USER username 認(rèn)可 此命令與下面的pass命令若成功,將導(dǎo)致狀態(tài)轉(zhuǎn)換 PASS password 認(rèn)可 APOP Name,Digest 認(rèn)可 Digest是MD5消息摘要 ------------------------------------------ STAT None 處理 請(qǐng)求服務(wù)器發(fā)回關(guān)于郵箱的統(tǒng)計(jì)資料,如郵件總數(shù)和總字節(jié)數(shù) UIDL [Msg#] 處理 返回郵件的唯一標(biāo)識(shí)符,POP3會(huì)話的每個(gè)標(biāo)識(shí)符都將是唯一的 LIST [Msg#] 處理 返回郵件數(shù)量和每個(gè)郵件的大小 RETR [Msg#] 處理 返回由參數(shù)標(biāo)識(shí)的郵件的全部文本 DELE [Msg#] 處理 服務(wù)器將由參數(shù)標(biāo)識(shí)的郵件標(biāo)記為刪除,由quit命令執(zhí)行 RSET None 處理 服務(wù)器將重置所有標(biāo)記為刪除的郵件,用于撤消DELE命令 TOP [Msg#] 處理 服務(wù)器將返回由參數(shù)標(biāo)識(shí)的郵件前n行內(nèi)容,n必須是正整數(shù) NOOP None 處理 服務(wù)器返回一個(gè)肯定的響應(yīng) ------------------------------------------ QUIT None 更新
a.客戶機(jī)希望結(jié)束這次會(huì)話 b.如果服務(wù)器處于‘處理’狀態(tài),那么將進(jìn)入‘更新’狀態(tài)以刪除任何標(biāo)記為刪除的郵件 c.導(dǎo)致由處理狀態(tài)到更新狀態(tài),又重返認(rèn)可狀態(tài)的轉(zhuǎn)變 d.如果這個(gè)命令發(fā)出時(shí)服務(wù)器處于‘認(rèn)可’狀態(tài),則結(jié)束會(huì)話,不進(jìn)行‘更新’狀態(tài)。
7. POP3協(xié)議在TCP/110端口上等待客戶連接請(qǐng)求。
8. 若密碼為明文,我如何監(jiān)聽? 下面的命令在服務(wù)器運(yùn)行后在屏幕上顯示POP3連接及命令發(fā)送的過程: #sniffit -a -A. -p 110 -b -s 192.169.11.12 note: 192.168.11.12是客戶機(jī)IP地址 你需要事先安裝sniffit這個(gè)端口監(jiān)聽程序
9. 考慮這種情況,若客戶在收取郵件時(shí),假定為15封信等待接收,但由于線路問題,收到第10封時(shí)斷線了, 為什么下次收時(shí)仍然從第一封開始,也即為什么前10封沒有被從服務(wù)器上刪除掉? 任何郵件的刪除都必須在quit命令發(fā)出后對(duì)已標(biāo)記為刪除的郵件執(zhí)行刪除操作,由于中途斷線,仍處于 處理狀態(tài),沒有機(jī)會(huì)執(zhí)行quit命令以進(jìn)行狀態(tài)轉(zhuǎn)換。
10. pop3 session is locked by another session, please wait 10 minutes then try again.
由于非正常操作引起POP3程序內(nèi)部機(jī)制鎖住該次會(huì)話。
11. Foxmail與OE(outlook express)的處理機(jī)制的不同。 a. 假定服務(wù)器上有三封郵件等待客戶機(jī)接收。用foxmail與OE的不同之處在于 foxmail每收一封標(biāo)記刪除一封,而OE則等全部接收完后再全部標(biāo)記為刪除最后執(zhí)行quit命令。
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的遠(yuǎn)程郵件管理是非常優(yōu)秀的管理工具,假定服務(wù)器上有三封信,對(duì)第一封,我們不想接收 想從服務(wù)器直接刪除;對(duì)第二封,想接收但不刪除,對(duì)第三封,這一次不想接收,分別標(biāo)記后 最后foxmail發(fā)出的命令是
dele 1 retr 2 quit
c. 若沒有foxmail,正好有幾封很大的信堵住了,我不想接收,想直接刪除它,或者想查看這兩封是誰(shuí)發(fā)的?
直接在windows的DOS窗口下用命令行操作,如: # telnet my.isp.net 110 user 'username' pass 'password' list dele 3 dele 5 quit
|
|