郵局協(xié)議
1.什么是郵局協(xié)議[1]
郵局協(xié)議是一個專為用戶保存郵件的郵件服務(wù)器協(xié)議,它是MTS上負(fù)責(zé)“接收”電子郵件的通信協(xié)議。
2.郵局協(xié)議的發(fā)展[2]
1984年制定了POP(RFC918),以后完善為POP3(RFC1939)。
郵局協(xié)議(POP3)是一個非常簡單但功能很有限的讀取協(xié)議,它規(guī)定怎樣將個人計算機(jī)連接到Internet的郵件服務(wù)器和下載電子郵件的電子協(xié)議。它是因特網(wǎng)電子郵件的第一個離線協(xié)議標(biāo)準(zhǔn),POP3允許用戶從服務(wù)器上把郵件存儲到本地主機(jī)(即自己的計算機(jī))上,同時刪除保存在郵件服務(wù)器上的郵件,而POP3服務(wù)器則遵循POP3協(xié)議,接收郵件服務(wù)器的電子郵件。
POP適用于C/S結(jié)構(gòu)的脫機(jī)模型,脫機(jī)模型不能在線操作。POP3客戶向POP3服務(wù)器發(fā)送命令并等待響應(yīng),POP3命令采用命令行形式,用ASCII碼表示。
服務(wù)器響應(yīng)是由一個單獨的命令行或多個命令行組成,響應(yīng)第一行以ASCII文本+OK或_ERR指出相應(yīng)的操作狀態(tài)是成功還是失敗。
在POP3協(xié)議中有三種狀態(tài):驗證狀態(tài),處理狀態(tài),和更新狀態(tài)。當(dāng)客戶機(jī)與服務(wù)器建立聯(lián)系時,一旦客戶機(jī)提供了自己身份并成功確認(rèn),即驗證狀態(tài)轉(zhuǎn)入處理狀態(tài);在完成相應(yīng)的操作后客戶機(jī)發(fā)出quit命令,則進(jìn)入更新狀態(tài);更新之后重返驗證狀態(tài),如圖1所示。3.郵局協(xié)議的內(nèi)容[3]
郵局協(xié)議(POP)是一個客戶方的啟動協(xié)議,它的作用和SMTP正好相反:SMTP用于把郵件從一臺機(jī)器轉(zhuǎn)發(fā)到另一臺機(jī)器,而POP則用于接收新郵件。
POP的工作方式很象每天檢查郵箱中是否有新郵件,如果有的話,則接收新郵件。唯一的區(qū)別是用戶很可能希望更頻繁地檢查新郵件而不是每天一次。每15分鐘檢查一次是一個比較現(xiàn)實的值。
客戶機(jī)定期詢問郵件服務(wù)器是否有新郵件到達(dá)。如果服務(wù)器中有新郵件,則客戶機(jī)將下載這些郵件。郵件下載后是否還要在服務(wù)器中保留一份副本,由POP的配置方案決定。
當(dāng)接收完所有的新郵件之后,客戶機(jī)可以將發(fā)送隊列中待發(fā)送的郵件送往郵件服務(wù)器進(jìn)行發(fā)送。服務(wù)器上的MTA(很可能是sendmail)負(fù)責(zé)發(fā)送郵件。
1.服務(wù)器上的POP
POP服務(wù)器上必須運行一個特殊進(jìn)程,叫做popd,表示POP Daemon。守護(hù)進(jìn)程是一個服服務(wù)器進(jìn)程,它運行在控制終端上,通常處理客戶連接。
當(dāng)popd收到來自郵件服務(wù)器的請求后,它檢查用戶帳號名和被請求的郵件賬號口令。如果口令正確,則下載郵件,并根據(jù)客戶機(jī)的設(shè)置處理用戶在服務(wù)器上郵箱中郵件(刪除成保留)。
2.客戶機(jī)上的POP
現(xiàn)在的MUA中都集成了POP的特征。對Netscape Communicator Messenger來說,按下GetMsg按鈕即。而在Microsoft Outlook Express中,應(yīng)按下Send and Receive按鈕。在這兩種情況下客戶機(jī)都會向郵件服務(wù)器詢問服務(wù)器收到郵件的情況。
·郵件服務(wù)器的位置
·用戶帳號名
·用戶賬號口令
在用戶請求下裁郵件時,這些信息將自動傳輸給郵件服務(wù)器。
4.郵局協(xié)議的代理特點[4]
郵局協(xié)議(POP)對于代理系統(tǒng)來說是非常簡單的,因為它采用單個連接。內(nèi)置的支持代理的POP客戶程序很少,主要原因是POP多用于局減網(wǎng),而很少用于因特網(wǎng)。如果你能找到UNIX的POP客戶程序的源代碼,而將其修改成支持代理的POP客戶程序是相當(dāng)簡單的,要找到用于PC機(jī)的POP源程序要困難一些,但是修改是容易的。
沒有一個簡單的方法為內(nèi)部程序和外部服務(wù)器的連接來進(jìn)行配置,除非所有的客戶程序連接到同一臺服務(wù)器。如果是這樣的話,可以在自己的堡壘主機(jī)的POP3端口上運行一個公用的TCP代理程序(如TISFWTK提供的plug-gw),將所有的POP請求連接到一個單獨的POP服務(wù)器,然后再配置你的客戶程序,以訪問在堡壘主機(jī)上的“POP服務(wù)器”(實際上是一個代理程序)。
如果不提供訪問多個POP服務(wù)器,而且能夠確定所有客戶程序是從一個給定的IP地址或域名來的,并連接到一個特定的服務(wù)器,那么可以用pJug-gw程序來設(shè)置較復(fù)雜的規(guī)則,根據(jù)連接請求的來源,將它連接到合適的服務(wù)器上。如果同一個客戶機(jī)或多個客戶機(jī)上有多個用戶需要通過防火墻訪問不同的POP服務(wù)器,目前還沒有簡單的方法來做到這一點。但可以通過編寫一個特殊的POP代理服務(wù)程序運行在堡壘主機(jī)上以認(rèn)證用戶,決定用戶所要連接的服務(wù)器,并提供連接??捎蒔OP服務(wù)器認(rèn)證用戶,然后扮演傳統(tǒng)代理服務(wù)器的角色進(jìn)行數(shù)據(jù)傳輸,但必須使用密鑰來完成此項服務(wù)。
5.POP3的優(yōu)缺點[5]
POP3的優(yōu)點是:消息是一次性下載到本地計算機(jī)上的,因此可以方便地進(jìn)行脫機(jī)閱讀。同時還可以指定是否要在服務(wù)器上保留消息副本。POP3是比較普及的協(xié)議,大部分郵件服務(wù)器都支持它。POP3的缺點是:必須將本地收件箱與服務(wù)器郵箱進(jìn)行同步。在每次連接時,都要下載新的消息。如果使用多臺計算機(jī),則可能有某些消息駐留在一臺機(jī)器上,而另外一些消息駐留在其他機(jī)器上。當(dāng)使用慢速鏈路連接時,POP3沒有IMAP好用。另外,POP3不支持多個地址。