POP協議簡介 (作者:陳俊清 2000年10月18日 11:53) 本文簡要說明了通過POP3協議收取郵件、MIME郵件的解碼的原理;針對收取和MIME解碼,提供了兩個實用的PHP類,並提供了使用的樣例。分為郵件收取、MIME解碼兩個部分。這裡我們先向您介紹郵件的收取,解碼部分會在以後的文章中為各位詳細的介紹,敬請關注。 現在Internet上最大的應用應該是非Email莫屬了,我們每天都習慣於每天通過Email進行交流,各大網站也幾乎都推出了自己的基於WEB的免費郵件系統。在本文裡,筆者將介紹一些Email實現的一些原理。同時我們假設你對於PHP的編程有一定的基礎,對於TCP/IP協議也有一定的了解。 POP 協議簡介 POP的全稱是 Post Office Protoco ,即郵局協議,用於電子郵件的接收,現在常 用的是第三版 ,簡稱為 POP3。通過POP協議,客戶機登錄到服務器上後,可以對自己的郵件進行刪除,或是下載到本地,下載後,電子郵件客戶軟件就可以在本地對郵件進行修改、刪除等。另外一種用於接收信件的郵件是 IMAP 協議,現在發展很快,在本文中,我們暫不討論。 POP服務器一般使用的是TCP的110號端口,如果你用的是Foxmail的話,在其收郵件的時候,你可以看到其信息提示窗口有這麼一些命令: “正在連接到 62.123.23.123:110"; "USER BOSS_CH"; "PASS.............."; 下面讓我們來看一段 與 POP3 服務器對話的實錄: telenet pop.china.com 110 +OK AIMC POP service (mail2.china.com) is ready. USER boss_ch +OK Please enter password for user . PASS ****** +OK boss_ch has 1 messages (750 octets) STAT +OK 1 750 LIST +OK 1 messages (750 octets) 1 750 RETR 1 +OK 750 octets Received: from smtp2.ptt.js.cn([202.102.24.37]) by china.com(JetMail 2.5.3.0) with SMTP id jm4839cc4227; Sat, 23 Sep 2000 05:31:21 -0000 Received: from chenjunqing ([61.155.120.6]) by smtp2.ptt.js.cn (Netscape Messaging Server 4.15) with SMTP id G1BRHJ03.V07 for ; Sat, 23 Sep 2000 13:34:31 +0800 Date: Sat, 23 Sep 2000 13:34:18 +0800 From: =?ISO-8859-1?Q?=B3=C2=BF=A1=C7=E5?= To: [email protected] Subject: =?ISO-8859-1?Q?=D3=CA=BC=FE=CA=BE=C0=FD?= X-mailer: FoxMail 3.1 [cn] Mime-Version: 1.0 Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: 8bit Message-ID: 您好! 這是一個郵件的小示例 QUIT +OK Pop server at signing off. 以下對幾個常用的POP3命令作一個簡單的介紹 : 命令 參數 狀態 描述 ------------------------------------------ USER username 認可 此命令與下面的pass命令若成功,將導致狀態轉換 PASS password 認可 APOP Name,Digest 認可 Digest是MD5消息摘要 ------------------------------------------ STAT None 處理 請求服務器發回關於郵箱的統計資料,如郵件總數和總字節數 UIDL [Msg#] 處理 返回郵件的唯一標識符,POP3會話的每個標識符都將是唯一的 LIST [Msg#] 處理 返回郵件數量和每個郵件的大小 RETR [Msg#] 處理 返回由參數標識的郵件的全部文本 DELE [Msg#] 處理 服務器將由參數標識的郵件標記為刪除,由quit命令執行 RSET None 處理 服務器將重置所有標記為刪除的郵件,用於撤消DELE命令 TOP [Msg#] 處理 服務器將返回由參數標識的郵件前n行內容,n必須是正整數 NOOP None 處理 服務器返回一個肯定的響應,不做任何操作。 ------------------------------------------ QUIT None 更新 退出