本系列分三部分介紹:POP3 收信、MIME 解碼原理、完整解碼類實作。第一部分先認識郵件原始碼結構。
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-Mailer: Microsoft Outlook Express 5.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 / To | 寄件者/收件者郵箱與顯示名稱 |
| Subject | 主旨,可能經 MIME 編碼(如 =?charset?encoding?data?=) |
| Date | 寄送時間(RFC 2822 格式) |
| MIME-Version | MIME 版本,固定 1.0 |
| Content-Type | 內容類型;multipart/* 表示多部分郵件,需 boundary 分隔 |
| Content-Transfer-Encoding | 傳輸編碼:base64 或 quoted-printable |
| X-* | 自訂擴充欄位(優先級、郵件軟體等) |
範例為 multipart/alternative,包含純文字與 HTML 兩種呈現,郵件客戶端自動選擇最適合者顯示。每部分以 boundary 字串分隔,結尾以 boundary-- 結束。
下一篇將詳細講解 MIME 編碼方式與 PHP 解碼函數實作。