- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
822与邮件协议介绍全解
RFC822:
一、简介
1977年,Arpnet在他们开发的几个非正式文本消息传送标准的基础上,制订了“Arpnet网络之间文本消息格式标准”,即RFC#733。后来为了适应更大、更复杂的Arpnet网,对RFC#733作了一些修订,形成了RFC#822。虽然RFC#822是专门为Arpnet网设计的,但其他网络之间的文本消息传输也可以用
二、适用范围
只对邮件的头部部分做出了规范,对消息体没有做出任何规范。
三、主要语法规则
Field = Field Name + “:” + Field Body + CRLF
例如
时间 Date: Thu, 18 Jan 2001 14:21:34 +0800 (CST)
地址 from: “hetielin”hetl@
四、实现
分离邮件的字段体和字段体,存贮在线性链表中
MIME协议:
一、简介
MIME(Multipurpose Internet Mail Extensions),RFC#822定义了消息头的传输标准,而把消息体当成纯ASCII文本。这个文档重新定义了消息体的格式,使得消息体可以在交换非文本信息时不会失真。同时也使得消息可以在RFC#822主机和X.400主机(认为在消息体中加入非文本信息是合法的)之间进行交换。
二、消息头格式扩展
主要是为了解决如下三种情况
在参数值当中使用非ASCII字符
明确需要显示参数指示所用的语言
参数值过长的问题
例子一
Content-Type: message/external-body; access-type=URL;
URL*0=ftp://;
URL*1=/pub/moore/bulk-mailer/bulk-mailer.tar
在语义上等价于
Content-Type: message/external-body; access-type=URL;
URL=/pub/moore/bulk-mailer/bulk-mailer.tar
其中*后面加一个正整数表示用多行代表一个参数值
例子二
Content-Type: application/x-stuff;
title*=us-asciien-usThis%20is%20%2A%2A%2Afun%2A%2A%2A
参数名后面紧跟*表示后面有字符集(character set)和语言(language)信息,参数值当中单引号()表示前面是字符信息或者语言信息,百分号(%)表示后面跟的是一个用十六进制编码的字符。
例子三
Content-Type: application/x-stuff
title*0*=us-asciienThis%20is%20even%20more%20
title*1*=%2A%2A%2Afun%2A%2A%2A%20
title*2=isnt it!
该例子综合运用了例子一和二当中出现的情况
例子四
From: =?US-ASCII*EN?Q?Keith_Moore?= moore@
该例子代表的是在encoded-word当中使用语言信息的情况,语言信息跟在星号后
同时encoded-word 的语法原为
encoded-word := =? charset ? encoding ? encoded-text ?=
这个文档把其更改为
encoded-word := =? charset [* language] ? encoded-text ?=
三、两种编码方式
Quoted-Printable Content-Transfer-Encoding
Quoted-Printable编码保持ASCII范围内的字符不变,把其他数据以可打印的ASCII字符集表示出来,这些数据大部分由八位字节符组成的,经过这种编码后的八位字节符不会在邮件传输过程中失真。
编码规则如下:
任何8位字节,除了指示换行的外,都可表示为=,后面接两个表示8位字节值的十六进制字符。如12可表示为=0C
在33到60范围内(含33与60)和62到126(含62与126)内的8位字节数均以其对应的ASCII字符来显示
具有9和32的8位字节符可以以其对应的ASCII字符来表示,但是当这些8位字节符在文本行的末端出现时,这些字节数必须用规则一进行编码的原因是一些Internet消息传输代理(MTA)从消息行的末尾删除尾部的空字符,尽管这对文本消息无损,但可能破坏二进制消息
在文本体中,换行符可以使用标准的RFC822换行符来表示,转换方
文档评论(0)