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