首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

用 PHP 實現 POP3 郵件解碼(一):MIME 郵件結構與原始碼分析

     編輯:PHP 相關知識

POP3 收取的郵件多為 MIME 編碼(Base64、Quoted-Printable),包含多部分(文字、HTML、附件)。本文解析 MIME 郵件原始結構,為後續解碼類別鋪路。

典型 MIME 郵件原始碼

From: ...
To: ...
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"

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==

關鍵結構說明

  • Content-Type: multipart/alternative:郵件包含多種替代格式(純文字/HTML)。
  • boundary:分隔各部分的邊界字串。
  • Content-Transfer-Encoding: base64:內容經 Base64 編碼,需解碼。
  • charset="gb2312":中文編碼宣告,解碼後需轉換為系統編碼。

下篇將實作 MIME 解析器:分割部分、解碼傳輸編碼、處理字元集轉換、提取附件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved