初步认识邮件的源文件
(作者:陈俊清 2000年10月24日 15:08)
本文简要说明了通过pop3协议收取邮件、mime邮件的解码的原理;针对收取和mime解码,提供了两个实用的php类,并提供了使用的样例。分为邮件收取、mime解码两个部分。我们已经向您介绍过了邮件的收取,现在让我们来为您介绍本文的解码部。
在上一篇里,我们已经完成了一个用php通过pop3收取邮件的实例,可是在使用这个类的时候,相信你已经看到了,很多的邮件收下来是一堆乱码,自己根本看不懂!是的。现在的邮件大部分都已经经过了编码,需要一个解码的过程才能变成我们习惯的文字、图片、或是其它的附件。
邮件的源文件
首先,我们来看一段简单的邮件的源文件:(在foxmail中,选中邮件,点选“查看源文件”就会看到这样的些内容了)
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"
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:
to:
这个是好理解的,邮件由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,不过,这些东西跟邮件的内容是没有很大关系的。我们不需要深究。