MIME协议分析

MIME协议分析

第1章.     MIME概述

MIME, 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为多用途互联网邮件扩展。它是当前广泛应用的一种电子邮件技术规范,基本内容定义于RFC 2045-2049(注意RFC1521RFC1522是它的过时版本)。

MIME试图在不改变SMTP协议和RFC822(邮件格式标准)的基础上,使得邮件可以传送任意二进制文件。为此,它在这些协议之上,采取了一些措施,这就是我们下面所要重点讲述的内容。

第2章.     MIME详解

2.1.  改进措施

一封邮件包括信封、邮件头和邮件体等三个部分。信封显然可以不含有二进制信息,而其它两部分则可能包含任意二进制序列,因此需要加以改进。MIME正是抓住了这两个地方来对他们加以改进。

1)        新增了一些邮件头信息,用来协商MIME的一些参数。

2)        定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。

3)        定义了传送编码,从而可以传送任意二进制文件。

在这里,我还是要不厌其烦地强调指出,所有的改进措施都是建立在不改变原来的SMTP协议和RFC822的基础上的。事实上,我们可以把这些改进措施,看成是在用SMTP等发送邮件前所采取的预处理。

2.2.  一封简单邮件的源码

为了对MIME邮件有个直观的了解,先给出一封简单邮件的源码。源码中,行号和行号后的空格是为了分析方便而另外加的,“... ... ... ...”表示此处省略了大段编码。

   1 From: "bhw98" <bhw98@sina.com>

   2 Reply-To: bhw98@sina.com

   3 To: <bluesky7810@163.com>

   4 Subject: Re: help

   5 X-Mailer: Foxmail 4.2 [cn]

   6 Mime-Version: 1.0

   7 Content-Type: multipart/alternative;

   8  boundary="=====002_Dragon307572345230_====="

   9

  10

  11 This is a multi-part message in MIME format.

  12

  13 --=====002_Dragon307572345230_=====

  14 Content-Type: text/plain; charset="GB2312"

  15 Content-Transfer-Encoding: quoted-printable

  16

  17 bluesky7810=A3=AC=C4=FA=BA=C3=A3=A1

  18

  19 =A1=A1=A1=A1=D4=DA=CF=C2=C6=AA=D7=EE=BA=F3=BF=C9=D2=D4=CF=C2=D4=D8=B0=A1=A3=AC=C4=E3

     ... ...  ... ...

  30 =A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1 2003-04-07

  31

  32 --=====002_Dragon307572345230_=====

  33 Content-Type: text/html; charset="GB2312"

  34 Content-Transfer-Encoding: quoted-printable

  35

  36 <!DOCTYPE HTML PUBLIC "-//W 3C //DTD HTML 4.0 Transitional//EN">

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MIME结构 一、 RFC822协议 RFC822 文档定义了邮件内容的主体结构和各种邮件头字段的详细细节,但是,它没有定义邮件体的格式,RFC822文档定义的邮件体部分通常都只能用于表述一段普通的文本,而无法表达出图片、声音等二进制数据。另外,SMTP服务器在接收邮件内容时,当接收到只有一个“.”字符的单独行时,就会认为邮件内容已经结束,如果一封邮件正文中正好有内容仅为一个“.”字符的单独行,SMTP服务器就会丢弃掉该行后面的内容,从而导致信息丢失。 由于 Internet的迅猛发展,人们已不满足于电子邮件仅仅是用来交换文本信息,而希望使用电子邮件来交换更为丰富多彩的多媒体信息,例如,在邮件中嵌入图片、声音、动画和附件。但是,由于图片和声音等内容是非ASCII码的二进制数据,而RFC822邮件格式只适合用来表达纯文本的邮件内容,所以,要使用 RFC822邮件格式发送这些非ASCII码的二进制数据时,必须先采用某种编码方式将它们“编码”成可打印的ASCII字符后再作为RFC822邮件格式的内容。邮件阅读程序在读取到这种经过编码处理的邮件后,再按照相应的解码方式解码出原始的二进制数据,这样就可以借助RFC822邮件格式来传递多媒体数据了。这种做法需要解决以下两个技术问题: (1) 邮件阅读程序如何知道邮件中嵌入的原始二进制数据所采用的编码方式; (2) 邮件阅读程序如何知道每个嵌入的图像或其他资源在整个邮件内容中的起止位置。 针对这个问题,人们后来专门为此定义了MIME(Multipurpose Internet Mail Extension,多用途Internet邮件扩展)协议。 .....
MIME协议(中文版)》,DOC格式,大小89KB。 内容预览: MIME结构 一、 RFC822协议 RFC822 文档定义了邮件内容的主体结构和各种邮件头字段的详细细节,但是,它没有定义邮件体的格式,RFC822文档定义的邮件体部分通常都只能用于表述一段普通的文本,而无法表达出图片、声音等二进制数据。另外,SMTP服务器在接收邮件内容时,当接收到只有一个“.”字符的单独行时,就会认为邮件内容已经结束,如果一封邮件正文中正好有内容仅为一个“.”字符的单独行,SMTP服务器就会丢弃掉该行后面的内容,从而导致信息丢失。 由于 Internet的迅猛发展,人们已不满足于电子邮件仅仅是用来交换文本信息,而希望使用电子邮件来交换更为丰富多彩的多媒体信息,例如,在邮件中嵌入图片、声音、动画和附件。但是,由于图片和声音等内容是非ASCII码的二进制数据,而RFC822邮件格式只适合用来表达纯文本的邮件内容,所以,要使用 RFC822邮件格式发送这些非ASCII码的二进制数据时,必须先采用某种编码方式将它们“编码”成可打印的ASCII字符后再作为RFC822邮件格式的内容。邮件阅读程序在读取到这种经过编码处理的邮件后,再按照相应的解码方式解码出原始的二进制数据,这样就可以借助RFC822邮件格式来传递多媒体数据了。这种做法需要解决以下两个技术问题: (1) 邮件阅读程序如何知道邮件中嵌入的原始二进制数据所采用的编码方式; (2) 邮件阅读程序如何知道每个嵌入的图像或其他资源在整个邮件内容中的起止位置。 针对这个问题,人们后来专门为此定义了MIME(Multipurpose Internet Mail Extension,多用途Internet邮件扩展)协议。 二、 RFC822结构

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值