TCP/IP 與 Internet 網路:第十四章 電子郵件系統  上一頁           下一頁

 

翻轉工作室:粘添壽

 

14-5 POP3 協定

『郵局協定』(Post Office Protocol, POP的功能和一般郵政系統的郵政信箱非常類似,目前大多使用第三版本(Version 3),一般以POP3稱呼之。POP3 協定用於客戶端電腦和郵件伺服器之間的通訊,讓使用者可以從郵件伺服器上下載信件,它的功能就如同使用者到郵局的信箱索取信件一樣。尤其在 Internet 網路上,客戶端電腦大多不會隨時等待接收信件,當信件來到時,便將信件儲存在郵件伺服器上,使用者再利用個人電腦透過 POP3 協定,將信件從郵件伺服器上下載到客戶端電腦上。當然客戶端電腦也需要有一套軟體工具來處理下載的工作,一般在 Linux 系統上是以 fetchmail 程式;而 Windows 系統是以 Outlook 來處理(14-7 節介紹)。如果使用者在主機電腦(如 linux-1)上讀取郵件,而此主機電腦也是該使用者郵件的郵件伺服器(Mail Server)的話,便不需要 POP3 協定。一般為了標明此郵件伺服器所提供的通訊協定,而將有提供 POP3 協定的郵件伺服器,稱之為POP3 ServerPOP3 協定的功能如圖 14-6 所示,當信件由 SMTP 協定轉送到郵件伺服器後,客戶端電腦再利用 POP3 協定,將信件下載下來。

14-6 POP3 協定功能

POP3 的標準規範是 RFC 1725 RFC 1939,傳輸方式為 NVT ASCII 終端機模式,通訊雙方使用『命令/回覆』的交談方式(如十二章介紹),通訊端點建立在 110/tcp

最小化的 POP3 提供有下列交談命令:USER namePASS stringQUITSTATLIST [msg]RETR msgDELE msgNOOPRESET;選項命令有:APOP name digestTOP msg nUIDl [msg];回應訊息是 +OK -ERR。這些命令提供給 POP3 客戶端和伺服端之間交談使用,如果伺服端執行正常,則回應 +OK;否則回應 -ERR。在整個連線通訊當中,可區分為:認證(Authorization)、交易(Transaction)與更新(Update)等三個階段,我們分別以這三個階段來介紹 POP3 命令。

A認證階段(Authorization

認證表示使用者連接 POP3 伺服器之後,登入(Login)使用者名稱及密碼驗證的階段,登入後才可以從事於信箱的處理工作(下載或刪除),其中會使用到 USER PASS 兩個命令,並可以 QUIT 命令離開 POP3 伺服器,操作範例如下:

[tsnien@linux-1 root]$ mail tsnien@linux-2.cu.edu.tw

Subject: test pop3

test pop3 mail

.

Cc:

[tsnien@linux-1 root]$ telnet linux-2.cu.edu.tw 110

Trying 163.15.2.30...

Connected to linux-2.cu.edu.tw.

Escape character is '^]'.

+OK POP3 linux-2.cu.edu.tw v2000.70rh server ready

user tsnien

+OK User name accepted, password please

pass kk3456

+OK Mailbox open, 1 messages

上述範例是由 linux-1 root 發送一封信件給 linux-2 伺服器下的 tsnien 使用者,緊接著,root 登入 linux-2 POP3 伺服器,並以 user pass 命令來通過伺服器的認證。

B交易階段(Transaction

經過認證階段之後,便立即進入交易(Transaction)階段,以下範例為下載信件到客戶端電腦(linux-1)的處理動作:(括弧內為命令動作說明)

stat      (顯示目前信箱郵件數目及郵件大小,Bytes

+OK 1 598

list 1     (顯示第一封信件)

+OK 1 598

retr 1    (下載第一封信件)

+OK 598 octets

Return-Path: <root@linux-1.cu.edu.tw>

Received: from linux-1.cu.edu.tw (IDENT:root@linux-1.cu.edu.tw [163.15.2.62])

        by linux-2.cu.edu.tw (8.11.6/8.11.6) with ESMTP id g771nqM10366

        for <tsnien@linux-2.cu.edu.tw>; Wed, 7 Aug 2002 09:49:52 +0800

Received: (from root@localhost)

        by linux-1.cu.edu.tw (8.9.3/8.9.3) id JAA00967

        for tsnien@linux-2.cu.edu.tw; Wed, 7 Aug 2002 09:42:41 GMT

Date: Wed, 7 Aug 2002 09:42:41 GMT

From: root <root@linux-2.cu.edu.tw>

Message-Id: <200208070942.JAA00967@linux-1.cu.edu.tw>

To: tsnien@linux-2.cu.edu.tw

Subject: test2

Status:

 

test pop3 server

.

dele 1   (刪除第一封信件)

+OK Message deleted

stat     (顯示目前郵件數目)

+OK 0 0

.

除了上述命令外,交易階段還有下列命令:

NOOP:(No Operation無動作。測試 POP3 伺服器是否工作正常。

RESET:(Reset重。重設雙方狀態,如有標示刪除的信件(Message),會回覆成原來狀態。

TOP:(Top頂端資料。可觀察某一信件(或 Message),前面幾行的內容,如 TOP 1 10,表示顯示第一封信件的前面 10 行的內容。

C更新階段(Update

雖然郵件信箱經過交易階段的處理,但它只是標示處理狀態,並未真正的執行,因此,必須經過更新階段,才會真正的處理。譬如,信件被標示為刪除,還可以利用 RESET 命令救回來,如果以 QUIT 命令離開後,便真正處理刪除的動作,下次再登入時,已救不回被刪除的檔案。動作範例如下:

quit    (離開並更新郵件信箱)

+OK Sayonara

Connection closed by foreign host.

[root@linux-1 /root]#

 

 

<GOTOP>