用PHP實現POP3郵件的解碼(一)

初步認識郵件的源文件

本文簡要說明了通過POP3協議收取郵件、MIME郵件的解碼的原理;針對收取和MIME解碼,提供了兩個實用的PHP類,並提供了使用的樣例。分爲郵件收取、MIME解碼兩個部分。我們已經向您介紹過了郵件的收取,現在讓我們來爲您介紹本文的解碼部。

在上一篇裏,我們已經完成了一個用PHP通過POP3收取郵件的實例,可是在使用這個類的時候,相信你已經看到了,很多的郵件收下來是一堆亂碼,自己根本看不懂!是的。現在的郵件大部分都已經經過了編碼,需要一個解碼的過程才能變成我們習慣的文字、圖片、或是其它的附件。

郵件的源文件

首先,我們來看一段簡單的郵件的源文件:(在Foxmail中,選中郵件,點選“查看源文件”就會看到這樣的些內容了)

From: <boss_ch@netease.com>

To: <boss_ch@china.com>

Subject: =?gb2312?B?xOO6w6Oh?=

Date: Sun, 8 Oct 2000 20:28:45 +0800

MIME-Version: 1.0

Content-Type: multipart/alternative;

boundary="----=_NextPart_000_0007_01C03166.5B1E9510"

X-Priority: 3

X-MSMail-Priority: Normal

X-Mailer: Microsoft Outlook Express 5.00.2919.6700

X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700

This is a multi-part message in MIME format.

------=_NextPart_000_0007_01C03166.5B1E9510

Content-Type: text/plain;

charset="gb2312"

Content-Transfer-Encoding: base64

w7vT0MLSwuuwyaO/DQo=

------=_NextPart_000_0007_01C03166.5B1E9510

Content-Type: text/html;

charset="gb2312"

Content-Transfer-Encoding: base64

PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv

L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWdi

MjMxMiIgaHR0cC1lcXVpdj1Db250ZW50LVR5cGU+DQo8TUVUQSBjb250ZW50PSJNU0hUTUwgNS4w

MC4yOTIwLjAiIG5hbWU9R0VORVJBVE9SPg0KPFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+DQo8Qk9E

WSBiZ0NvbG9yPSNmZmZmZmY+DQo8RElWPjxGT05UIHNpemU9Mj7Du9PQwtLC67DJo788L0ZPTlQ+

PC9ESVY+PC9CT0RZPjwvSFRNTD4NCg==

------=_NextPart_000_0007_01C03166.5B1E9510-

這樣的一段郵件,我想沒有人能看得懂的。不要急,我們來仔細看看這些內容。

From: <boy@netease.com>

To: <boss_ch@china.com>

這個是好理解的,郵件由boy@netease.com發送,收件人是boss_ch@china.com,這些標簽的含義我們基本可從字面上理解到,像Date:Sun, 8 Oct 2000 20:28:45 +0800表示的是時間,X-Priority: 3表示的是郵件的優先級,X-Mailer: Microsoft Outlook Express 5.00.2919.6700表示的是郵件發送器的名字,這裏用的是Outllook 5,不過,這些東西跟郵件的內容是沒有很大關系的。我們不需要深究。

用PHP實現POP3郵件的收取
現在讓我們來用PHP實現一個通過POP3協議收取信件的類吧,這個類中所用到的一些sock操作的函數,不另做特殊說明,請參考php的有關資料。通過這個實例,相信你也會和我一樣,感覺到PHP中對于sock操作的靈活、方便和功能...查看完整版>>用PHP實現POP3郵件的收取
 
C#中對POP3郵件解碼
Base64和下面將要介紹的Quoted-Printable都屬于MIME(多部分( multi-part)、多媒體電子郵件和 WWW 超文本的一種編碼標准,用于傳送諸如圖形、聲音和傳真等非文本數據)。MIME定義在RFC1341中。 Base64是現今在互聯...查看完整版>>C#中對POP3郵件解碼
 
C#中對POP3郵件解碼
Base64和下面將要介紹的Quoted-Printable都屬于MIME(多部分( multi-part)、多媒體電子郵件和 WWW 超文本的一種編碼標准,用于傳送諸如圖形、聲音和傳真等非文本數據)。MIME定義在RFC1341中。 Base64是現今在互聯...查看完整版>>C#中對POP3郵件解碼
 
用PHP實現POP3郵件的解碼(三)
實現 MIME 解碼的類  該類實現解碼的方法是 decode($head=null,$body=null,$content_num=-1),爲了處理上的方便,要求輸入的是兩個字符數組,在我們的上篇中,所用到的POP類所收取得到的就是兩個這樣的數組,一個是...查看完整版>>用PHP實現POP3郵件的解碼(三)
 
用PHP實現POP3郵件的解碼(二)
MIME 編碼方式簡介  Subject: =?gb2312?B?xOO6w6Oh?=  這裏是郵件的主題,可是因爲編碼了,我們看不出是什麽內容,其原來的文本是:“你好!”我們先看看 MIME 編碼的兩種方法。  對郵件進行編碼最初的原因是因...查看完整版>>用PHP實現POP3郵件的解碼(二)
 
用PHP實現POP3郵件的解碼(一)
初步認識郵件的源文件  本文簡要說明了通過POP3協議收取郵件、MIME郵件的解碼的原理;針對收取和MIME解碼,提供了兩個實用的PHP類,並提供了使用的樣例。分爲郵件收取、MIME解碼兩個部分。我們已經向您介紹過了郵件...查看完整版>>用PHP實現POP3郵件的解碼(一)
 
自制Pop3郵件接收系統(一):利用MatchEvaluator實現HZ的解碼
要作自制的Pop3郵件接收系統,就要自己處理郵件的編碼大家可能會收到以下的“亂碼”,~{4s<R:C#,NRJG~}qiushuiwuhen~{#,;6S-@45=~}csdn.實際上是簡體中文的HZ編碼,在郵件中經常會出現,因爲郵件協議體系通常是七...查看完整版>>自制Pop3郵件接收系統(一):利用MatchEvaluator實現HZ的解碼
 
自制Pop3郵件接收系統(一):利用MatchEvaluator實現HZ的解碼
要作自制的Pop3郵件接收系統,就要自己處理郵件的編碼大家可能會收到以下的“亂碼”,~{4s<R:C#,NRJG~}qiushuiwuhen~{#,;6S-@45=~}csdn.實際上是簡體中文的HZ編碼,在郵件中經常會出現,因爲郵件協議體系通常是七...查看完整版>>自制Pop3郵件接收系統(一):利用MatchEvaluator實現HZ的解碼
 
用PHP實現POP3郵件的收取(一)
POP協議簡介  本文簡要說明了通過POP3協議收取郵件、MIME郵件的解碼的原理;針對收取和MIME解碼,提供了兩個實用的PHP類,並提供了使用的樣例。分爲郵件收取、MIME解碼兩個部分。這裏我們先向您介紹郵件的收取,解...查看完整版>>用PHP實現POP3郵件的收取(一)
 
 
回到王朝網路首頁