服务器 频道

邮件服务常用SMTP、POP3、MIME等协议

    3.MIME(通用因特网邮件扩充协议)

    1993年制定了RFC1521,1522。后增加了RFC 2045,2046。

    MIME在原来 RFC 822定义的信头的基础上新增了一些信头,用于让接收方了解正文的结构。 RFC 2045描述了MIME,正文内容仍然可以使用ASCII文本行。另一方面,MIME为非 ASCII报文定义了几种编码规则。以下所示为一 MIME邮件的信头,可以看出,除了原 RFC 822定义的信头外,还含有MIME新增加的信头:Mime Version、Content Type、Content Transfer En-coding、Content Disposition。

    Return Path:〈ajfan@cs.ecnu.edu.cn

    Received:from i575.cs.ecnu.edu.cn by cs.ecnu.

    edu. cn(4. 1 / SMI 4. 1 )

    id AA0 6 1 1 5;Mon,1 7Aug981 6∶ 3 7∶ 1 1 CDT

    Message Id:〈3 5D7CEA8. 1 CB1 @ cs. ecnu. edu. cn〉

    Date:Mon,1 7Aug1 9981 5∶ 3 3∶ 1 2 +0 90 0

    From:ajfan〈ajfan@ cs. ecnu. edu. cn〉

    Reply To:ajfan@ cs. ecnu. edu. cn

    X Mailer:Mozilla 3 . 0 (Win95;I)

    Mime Version:1 . 0

    To:aifan@ cs. ecnu. edu. cn

    Subject:paper

    Content Type:application/ octet stream;name=″

    Email3 . doc″

    Content Transfer Encoding:base6 4

    Content Disposition:attachment;filename=″

    Email3 . doc“

    MIME把五个新的头域增加入 Internet E-mail报文中,即MIME Version、Con-tent Type、Content Transfer Encoding、Content ID和 Content Descripton。MIME Version(MIME版本 )规定了代理所支持的 MIME版本。通过识别用于产生报文的 MIME版本,MIME Version域可以防止用户使用不兼容的 MIME版本误译 MIME报文。

    Content Type规定了报文体的类型,RFC 2045定义了7种类型:Text,Applica-tion、Image、Audio、Video、Message和Multipart,其中 Message和Multipart为复合类型,其余为简单类型,每种类型都有一个或多个子类型,类型与子类型中间以斜杆“/”分隔。 RFC 2046对各种类型作了详细规定。此外,MIME还允许扩展定义新的内容类型。

    Content Transfer Encoding指出正文在传输过程中使用的编码。NVT ASCII是 Internet E mail 报文的缺省格式。

    Content ID和Content Description头域是可选的。用户代理可用 Content ID值识别 MIME入口。

    Content Description允许用户增加关于报文体内容的说明性信息。

    MIME定义了 7种主要报文类型:

    Text类型指一般普通文本。Text/ Richtext允许报文体中出现简单基于 SGML的标志语言。Image类型用于传送静态图片 ,GIF和JPEG是两种存储格式不同的子类型。Audio和 Video类型用于传送声音和动态图片。Video仅包含视频信息而没有声音 ,如果要传送一段包含声音的视频信息 ,则视频信息和声音要分开传送。Application类型要求在显示前获得外部处理,用户代理收到 Application/ Octet-stream类型的报文时先将其复制到一个文件中去 ,文件名可由用户决定 ,然后作进一步处理。对 Postscript子类型的报文 ,接收方只要执行其中的附录程序就可显示到来报文。Message类型允许在一个报文中嵌入另一报文 ,常用于邮件转交。

    MIME的编码方案有Q方法和Base64方法。

    (1) Q方法

    可打印的内容传输编码为少量的8位数据作为7位NVT ASCII传输提供了简单而有效的编码方法。要使用可打印编码,以将任何具有第八位设置的字符当作一个三位字符串来传输。这三位字符串通常以等号开头 (=)。紧接着等号的是两位数字的十六进制(表示两个 ASCII字符),它表示被编码字符的ASCII值。例如JAMSA中的字符可编码如下:

    =4A=41 =4D=53=41

    “J”ASCII码是0x4A。“A”的ASCII十六进制是0x41等等。可打印编码把每个字符都转换成ASCII字符。例如在字母 J(ASCII 0x4A)的情况下,编码方案传输三个字节:一个等号(ASCII 0x3D),一个是数字4(ASCII 0x34),一个是字母A(ASCII 0x41)。可打印编码尽管使用简单,但编码是原数据的3倍。因此,可打印编码只对大量7位数据有益。

    (2) BASE64

    BASE64编码仅增加三分之一的报文大小,这是一种64个ASCII字符的编码方法,这64个字符分别是“A”~“Z”,“a”~“z”, “0”~“9”以及“+”和“/”。编码时,把每个连续的三个字节(24位)数据组合表示为四个六位数值(总共24位),每6位数值当作一个 ASCII字符来传输,其6位码值对应0~63。当数据不包含三字节数据块的整数倍时,这种编码方案使用等号填充数据。

    4.其它

    CCITT制定了功能很强的MHS标准,即X.400,但未得到广泛应用。另还有商家开发了自己独立的邮件系统,如微软的Exchange、 NetWare的GroupWise等,这些系统可与Internet邮件系统交换信息,内部实现上各有特色。若需了解,可查阅相关资料

 

0
相关文章