用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,不过,这些东西跟邮件的内容是没有很大关系的。我们不需要深究。

时间: 2024-12-31 10:18:14

用PHP实现POP3邮件的解码(一)的相关文章

用 PHP 实现 POP3 邮件的解码(1)

初步认识邮件的源文件 本文简要说明了通过POP3协议收取邮件.MIME邮件的解码的原理:针对收取和MIME解码,提供了两个实用的PHP类,并提供了使用的样例.分为邮件收取.MIME解码两个部分.我们已经向您介绍过了邮件的收取,现在让我们来为您介绍本文的解码部. 在上一篇里,我们已经完成了一个用PHP通过POP3收取邮件的实例,可是在使用这个类的时候,相信你已经看到了,很多的邮件收下来是一堆乱码,自己根本看不懂!是的.现在的邮件大部分都已经经过了编码,需要一个解码的过程才能变成我们习惯的文字.图片

用PHP实现POP3邮件的解码(三)

实现 MIME 解码的类 该类实现解码的方法是 decode($head=null,$body=null,$content_num=-1),为了处理上的方便,要求输入的是两个字符数组,在我们的上篇中,所用到的POP类所收取得到的就是两个这样的数组,一个是邮件头内容,一个是邮件的正文内容.限于篇幅,不对其做详细的说明,其实现思想跟本文上篇中所介绍的POP类类似.请参考其中的注释. 该类中用到了大量的正则表达式的操作,对此不熟悉的读者,请参考正则表达式的有关资料. class decode_mail

用PHP实现POP3邮件的解码(二)

MIME 编码方式简介 Subject: =?gb2312?B?xOO6w6Oh?= 这里是邮件的主题,可是因为编码了,我们看不出是什么内容,其原来的文本是:"你好!"我们先看看 MIME 编码的两种方法. 对邮件进行编码最初的原因是因为 Internet 上的很多网关不能正确传输8 bit 内码的字符,比如汉字等.编码的原理就是把 8 bit 的内容转换成 7 bit 的形式以能正确传输,在接收方收到之后,再将其还原成 8 bit 的内容. MIME 是"多用途网际邮件扩充

用PHP实现POP3邮件的收取

本文简要说明了通过POP3协议收取邮件.MIME邮件的解码的原理:针对收取和MIME解码,提供了两个实用的PHP类,并提供了使用的样例.分为邮件收取.MIME解码两个部分.这里我们先向您介绍邮件的收取,解码部分会在以后的文章中为各位详细的介绍,敬请关注. 现在Internet上最大的应用应该是非Email莫属了,我们每天都习惯于每天通过Email进行交流,各大网站也几乎都推出了自己的基于WEB的免费邮件系统.在本文里,笔者将介绍一些Email实现的一些原理.同时我们假设你对于PHP的编程有一定的

用PHP实现POP3邮件的收取(一)

POP协议简介(作者:陈俊清 2000年10月18日 11:53) 本文简要说明了通过POP3协议收取邮件.MIME邮件的解码的原理:针对收取和MIME解码,提供了两个实用的PHP类,并提供了使用的样例.分为邮件收取.MIME解码两个部分.这里我们先向您介绍邮件的收取,解码部分会在以后的文章中为各位详细的介绍,敬请关注. 现在Internet上最大的应用应该是非Email莫属了,我们每天都习惯于每天通过Email进行交流,各大网站也几乎都推出了自己的基于WEB的免费邮件系统.在本文里,笔者将介绍

用 PHP 实现 POP3 邮件的收取(1)

POP协议简介 本文简要说明了通过POP3协议收取邮件.MIME邮件的解码的原理:针对收取和MIME解码,提供了两个实用的PHP类,并提供了使用的样例.分为邮件收取.MIME解码两个部分.这里我们先向您介绍邮件的收取,解码部分会在以后的文章中为各位详细的介绍,敬请关注. 现在Internet上最大的应用应该是非Email莫属了,我们每天都习惯于每天通过Email进行交流,各大网站也几乎都推出了自己的基于WEB的免费邮件系统.在本文里,笔者将介绍一些Email实现的一些原理.同时我们假设你对于PH

运用C#实现POP3邮件接收程序

程序 微软的VS.Net开发工具推出已有一段时日了,其中的那门新语言C#也日渐为大家所熟悉并接受.C#作为一门新兴的语言相信具有传统语言不可比拟的优越性,特别是在网络应用方面,开发者更是感觉到了C#的强大功能.所以本文就通过运用C#来实现一个基于POP3协议的邮件接收程序来向大家展示C#网络编程的功能强大,同时也向大家介绍一下基于POP3协议的电子邮件接收原理. 首先我向大家介绍邮件接收的基本原理: 一开始便是客户端与服务器的连接.不过,在客户端连接到服务器之前,注意把端口设为POP3协议默认的

asp.net中用tcpclient收发pop3邮件。

问题描述 asp.net中用TcpClient收pop3邮件,直接用adsl上网可以接收到.但是我用代理服务器上网,则收不到,那么在程序中如何设置代理服务器?程序中不设代理,相当于http直连,无法成功.TcpClientsender=newTcpClient("pop.sina.com",110);请教达人.

收取pop3邮件的控件

问题描述 请问有谁看过董大伟写的<ASP.NET与AJAX深度剖析范例集>,在WebMail中所提到的收取pop3邮件的控件在哪可以下载到?