MIME邮件格式简介.doc_第1页
MIME邮件格式简介.doc_第2页
MIME邮件格式简介.doc_第3页
MIME邮件格式简介.doc_第4页
MIME邮件格式简介.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MIME(Multipurpose Internet Mail Extensions)从字面上可以翻译为:多用途互联网邮件扩展;MIME表示一种邮件格式的规范;从其字面意思就可知:它是对原先的邮件格式进行了扩展,使其用途比之前的邮件用途广的多。那么你也许会问:为什么要扩展原先的邮件格式规范呢?原先的邮件有什么不足?MIME这种类型的邮件又有什么样的特点?原先邮件的不足之处在MIME出现之前,互联网电子邮件主要遵循由RFC822所制定的标准,电子邮件一般只用来传递基本的ASCII码文本信息,并且早期的RFC822所使用的字符集是7位的US-ASCII编码,在这种情况下,不要说其他多媒体信息,就连有些语言文字都无法正确编码,也就无法传递。下面是一个传统的邮件格式:1Return-Path: 2Delivered-To: it315_3Received: from (unknown 77)4 by (Postfix) with SMTP id E4F9802C12495 for ; Thu, 10 Nov 2005 16:39:50 +0800 (CST)6Received: (qmail 49221 invoked from network); 10 Nov 2005 08:39: 33 -00007Received: from unknown (HELO it315?test) (51)8 by with SMTP; 10 Nov 2005 08:39:33 -00009 From: it315_10To: it315_11subject:test12Message-Id: 13Date: Thu, 10 Nov 2005 16:39:50 +0800 (CST)14Status: RO15X-UIDL: 1131611863.21509_77.mx721617test!说明:上例中的第115行是邮件的邮件头,第17行是邮件的邮件体,邮件头和邮件体之间以一个空行进行分隔。这封邮件的邮件体内容非常少,只有一行“test!”文本。邮件头部分由多个字段组成。可能你在你自己将要发送的邮件源文件中看到实际发送的邮件头少了一些字段,这些少了的头字段是各个SMTP服务器在传递邮件的过程加上的。SMTP服务器在传递邮件时,会把一些相关信息增加到邮件的邮件头中,这种情况有点类似于现实生活中的邮局在处理邮件时,通常都会在信封上加盖邮戳一样,表示这封邮件在什么时候经过了哪个邮局和由哪个工作人员经手处理。SMTP服务器按从下往上的方式添加各个字段;例如:上例中的邮件是由sina发送给sohu的,它首先经过sina的SMTP服务器,然后经过sohu的SMTP服务器,所以,sohu的SMTP服务器添加的头字段(15行)位于sina的SMTP服务器添加的头字段(68行)的上面。另外,POP3服务器也会在邮件头中增加一些头字段,例如,例程3-1中的1215行。Received字段的基本格式为Received from A by B for C,其中A为发送方,B为接收方,C为收件人的邮箱地址。该字段的内容由接收邮件的SMTP服务器填写,常常被用来追踪邮件传输的路线和分析邮件的来源,例如:上例中的各个Received字段中,可以知道这封邮件的传输路径:从IP地址为【51】的机器上发出【】【】【it315_】。上例中的第6行的“Received: (qmail 49221 invoked from network)”是sina的SMTP服务器内部调用的一个邮件发送模块添加的,它说明sina的SMTP服务器接收到邮件后再通过这个邮件发送模块将邮件转发出去。其他字段一看就懂,就不详细解释了!MIME格式的邮件从下例中你很容易看的出所谓的扩展是什么含义。1 Return-Path: /如果要回复,回复到哪里(含义) 目标邮件服务器(添加者)2 Delivered-To: /发送到哪里(含义)目标邮件服务器(添加者)3 Received: (qmail 75513 invoked by alias); 20 May 2002 02:19:53 -0000 /传输路径(含义) 各级邮件服务器(添加者)4 Received: from unknown (HELO bluesky) (35)5 by 43 with SMTP; 20 May 2002 02:19:53 -0000 /传输路径(含义) 各级邮件服务器(添加者)6 Message-ID: /邮件的创建者(添加者)7 From: =?gb2312?B?wLbAtrXEzOwNCg=?= /发件人地址(含义)邮件的创建者(添加者)8 To: bhw98 /收件人地址(含义)邮件的创建者(添加者)9 Cc: /抄送地址(含义)邮件的创建者(添加者)10 Subject: =?gb2312?B?ztK1xLbgtK6/2rPM0PI=?= /主题(含义) 邮件的创建者(添加者)11 Date: Sat, 20 May 2002 10:03:36 +0800 /时间日期(含义)邮件的创建者(添加者)12 MIME-Version: 1.0 /MIME的版本号13 Content-Type: multipart/mixed; /内容的类型14 boundary=-=_NextPart_000_007A_01C3115F.80DFC5E0 /分界定义15 X-Priority: 316 X-MSMail-Priority: Normal17 X-Mailer: Microsoft Outlook Express 5.00.2919.670018 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.670019 /这里空一行表示邮件头结束,邮件体开始20 This is a multi-part message in MIME format. /字符串21 /这里空一行表示附加段开始了22 -=_NextPart_000_007A_01C3115F.80DFC5E0 /子段开始23 Content-Type: multipart/related; type=multipart/alternative;24 boundary=-=_NextPart_001_007B_01C3115F.80DFC5E0252627 -=_NextPart_001_007B_01C3115F.80DFC5E0 /子段开始28 Content-Type: multipart/alternative;29 boundary=-=_NextPart_002_007C_01C3115F.80DFC5E03031 -=_NextPart_002_007C_01C3115F.80DFC5E0 /子段开始32 Content-Type: text/plain; charset=gb231233 Content-Transfer-Encoding: quoted-printable /内容的传输编码方式(用于编解码)3435 bhw98, =C4=E3=BA=C3!36 =D5=E2=CA=C7=CE=D2=D0=B4=B5=C4=B6=E0=B4=AE=BF=DA=CD=A8=D0=C5=B5=C4=B3=CC=D0=37 =F2, =C7=EB=D6=B8=BD=CC!383940 -=_NextPart_002_007C_01C3115F.80DFC5E0 /子段开始41 Content-Type: text/html; charset=gb231242 Content-Transfer-Encoding: quoted-printable4344 45 =C7=E7=C0=CA46 47 BODY 48 COLOR: #0033cc; FONT-FAMILY: =CB=CE=CC=E5, Arial, Helvetica; FONT-SIZE: =49 9pt; MARGIN-LEFT: 10px; MARGIN-TOP: 25px50 51 52 53 55 56 bhw98, =C4=E3=BA=C3!57 =D5=E2=CA=C7=CE=D2=D0=B4=B5=C4=B6=E0=B4=AE=BF=DA=CD=A8=D0=C5=B5=C4=B3=CC=58 =D0=F2, =C7=EB=D6=B8=BD=CC!59 6061 -=_NextPart_002_007C_01C3115F.80DFC5E0-6263 -=_NextPart_001_007B_01C3115F.80DFC5E064 Content-Type: image/jpeg; name=?gb2312?B?x+fAyrGzvrAuSlBH?=65 Content-Transfer-Encoding: base6466 Content-ID: 6768 /9j/4AAQSkZJRgABAgEASABIAAD/7QVoUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA69 AQBIAAAAAQABOEJJTQPzAAAAAAAIAAAAAAAAAAA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgAB70 AAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEA. . . .169 RxVw98Vawq12xQ44q0cKtHFDWKGsKt4EtiuKt4q/9k=170171 -=_NextPart_001_007B_01C3115F.80DFC5E0-172173 -=_NextPart_000_007A_01C3115F.80DFC5E0174 Content-Type: application/msword; name=readme.doc175 Content-Transfer-Encoding: base64176 Content-Disposition: attachment; filename=readme.doc177178 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAJgAAAAAAAAAA179 EAAAKAAAAAEAAAD+/AAAAACUAAAD/180 /. . . .1688 AAAAAAAAAAAAAAAAAAA=16891690 -=_NextPart_000_007A_01C3115F.80DFC5E01691 Content-Type: application/x-zip-compressed;1692 name=?gb2312?B?tuC0rr/azajQxbXE1LTC6y56aXA=?=1693 Content-Transfer-Encoding: base641694 Content-Disposition: attachment;1695 filename=?gb2312?B?tuC0rr/azajQxbXE1LTC6y56aXA=?=16961697 UEsDBBQAAAAIAFKAoi7qOMOvLw0AAABWAAAUAAAAtuC0rr/azajQxbXE1LTC6y5kb2PtXHtwVNUZ1698 /+4+kk3IQoAkBkRYQkSgbrKb7IYNEMwmm6ckG0jCI0boZneTbJJ9sNlAEsdOtFqd8Z846tQ6PhB11699 hrZTJoK0Vhgf1aGt4rMy6D8tdugfTjuOpcBIR9j+vvsIy4YkRNTRen87v/ud53cee+6557vn7L73. . . .3125 zajQxbXE1LTC6y5kb2NQSwUGAAAAAAEAAQBCAAAAYQ0AAA=31263127 -=_NextPart_000_007A_01C3115F.80DFC5E0-3128嵌套关系:-=_NextPart_000_007A_01C3115F.80DFC5E0 红段开始 -=_NextPart_001_007B_01C3115F.80DFC5E0 嵌套蓝段开始-=_NextPart_002_007C_01C3115F.80DFC5E0 再嵌套绿段开始-=_NextPart_002_007C_01C3115F.80DFC5E0 绿二段开始-=_NextPart_002_007C_01C3115F.80DFC5E0 绿段结束 -=_NextPart_001_007B_01C3115F.80DFC5E0 嵌套蓝段开始 -=_NextPart_001_007B_01C3115F.80DFC5E0-嵌套蓝段结束-=_NextPart_000_007A_01C3115F.80DFC5E0 红段开始-=_NextPart_000_007A_01C3115F.80DFC5E0 红二段开始-=_NextPart_000_007A_01C3115F.80DFC5E0红段结束说明:域MIME邮件的域的基本格式为:域名:内容;一条域在邮件中占一行或者多行,域的首行左侧必须顶在最左边,如果一个域需要占用多行,那么其后续行必须以空白字符开头。域的信息内容中还可以包含属性,属性之间以“;”分隔,属性的格式如下:属性名称=”属性值”。表1是一封示例邮件的内容,其中行1-5、行8都是单行的域,行6-7则是一个多行的域,并带有一个名为charset的属性,属性值为us-ascii。 表1 示例电子邮件行1 From:”suntao”行2 To:行3 Subject:hello world行4 Date:Mon,9 Oct 2006 16:51:34 +0800行5 MIME-Version:1.0行6 Content-Type:text/plain;行7 charset=us-ascii行8 Date:Mon,9 Oct 2006 16:48:25 +0800行9行10 Hello world行11 注意:邮件规范中定义了大量域,分别用来存储同邮件相关的各种信息,比如发件人的名字和邮件地址信息存储在From域中,收件人的邮件地址信息存储在To域中,开发人员可通过查询RFC文档得到完整的邮件域定义列表。Content-Type域Content-Type域定义了邮件中所含的内容的类型以及相关属性。邮件所含的文本、超文本、附件等信息都按照对应Content-Type域所指定的媒体类型、存储位置、编码方式等信息存储在邮件中。Content-Type域基本格式:Content-Type:主类型/子类型示例邮件中的行6-7就是一个Content-Type域,主类型为text,子类型为plain,字符集属性为us-ascii。MIME邮件中常见的主类型主类型 常见属性 参数含义 text charset 文本信息所使用的字符集 image name 图像的名称 application name 应用程序的名称 multipart boundary 邮件分段边界标识 multipart类型MIME邮件中各种不同类型的内容是分段存储的,各个段的排列方式、位置信息都通过Content-Type域的multipart类型来定义。multipart类型主要有三种子类型:mixed、alternative、related。multipart类型基本格式: multipart/mixed类型如果一封邮件中含有附件,那邮件的Content-Type域中必须定义multipart/mixed类型,邮件通过multipart/mixed类型中定义的boundary标识将附件内容同邮件其它内容分成不同的段。基本格式如下:Content-Type:multipart/mixed;boundary=分段标识 multipart/alternative类型MIME邮件可以传送超文本内容,但出于兼容性的考虑,一般在发送超文本格式内容的同时会同时发送一个纯文本内容的副本,如果邮件中同时存在纯文本和超文本内容,则邮件需要在Content-Type域中定义multipart/alternative类型,邮件通过其boundary中的分段标识将纯文本、超文本和邮件的其它内容分成不同的段。基本格式如下:Content-Type:multipart/alternative;boundary=分段标识 multipart/related类型MIME邮件中除了可以携带各种附件外,还可以将其它内容以内嵌资源的方式存储在邮件中。比如我们在发送html格式的邮件内容时,可能使用图像作为html的背景,html文本会被存储在alternative段中,而作为背景的图像则会存储在multipart/related类型定义的段中。基本格式如下:Content-Type:multipart/related;type=multipart/alternative; boundary=分段标识multipart类型的boundary属性multipart的子类型中都定义了各自的boundary属性,邮件使用这些boundary中定义的字符串作为标识,将邮件内容分成不同的段,段体内的每个子段以“-”+boundary行开始,父段则以“-”+boundary+“-”行结束,不同段之间用空行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论