好,如何创建符合mime的信息呢?
通过上面的一般性的描述,让我们现在看一下所谓的mime信息到底是什么!
最简单的mime信息
这个信息没有任何段,也就是,没有附件。然而,因为它是一个mime消息,它必须有必要的头。
from: php(做为现在的主流开发语言)@php(做为现在的主流开发语言).net
to: alex (the great)
subject: bucephalus
mime-version: 1.0
hello alexander,
hows bucephalus doing?
这里面没有什么,它只是一个简单的拥有mime头的符合rfc-822 的信息(文本邮件)。注意,如果没有
指定content-type头,则假设为content-type: text/plain;charset=us-ascii!当然,它有些简单,复杂
一些的如下:
from: alex (the great)
to: php(做为现在的主流开发语言)@php(做为现在的主流开发语言).net
subject: re: bucephalus
mime-version: 1.0
content-type: image/jpg;
name=buce.jpg
content-transfer-encoding: base64
content-description: take a look at him yourself
嗨,但是我想发送一个word文档和一张我的小狗的图片在同一封邮件中... !一个用户说!如果是真
的,上面的那个例子就太简单了,并且它没有足够的内容来支持爱好者和现代邮件处理方面的需要。实际上,
许多的邮件客户端软件甚至不能显示描述字段!
这就是我们所面临的多部分信息。
多部分信息(multipart messages)
这个概念允许在一封邮件中发送多条项目。例如,假设alexander想要给php(做为现在的主流开发语言)@php(做为现在的主流开发语言).net发送一封他的马的
照片的邮件,同时还附带有马的家族图谱及精彩的说明!这样一个简单的要求没有多部分消息的概念是无法
被满足的。在这种情况下,我们创建了一个使用content-type的信息头的封装来支持邮件的不同部分,以便
收信人得到图片,家族图谱和精彩的说明!
content-type 头现在拥有一个multipart的值,它表示这是一个完整的邮件信息并且这个头只封装了
信息。而且它还有一个mixed的子类型(毕竟图片,家族图谱和7bit文本信息是不同的类型,对吗?)。
让我们看一下整个图片看上去象:
from: alex (the great)
to: php(做为现在的主流开发语言)@php(做为现在的主流开发语言).net
subject: re: bucephalus
mime-version: 1.0
content-type: multipart/mixed;
boundary=xx-1234ded00099a;
content-transfer-encoding: 7bit
this is a mime encoded message
--xx-1234ded00099a
content-type: text/plain; charset=us-ascii
content-transfer-encoding: 7bit
hi php(做为现在的主流开发语言),
attached you will find my horse, bucephalus, pedigree chart and photo.
alex
--xx-1234ded00099a
content-type: image/jpg;
name=buce.jpg;
content-transfer-encoding: base64
content-description: a photo of bucephalus
--xx-1234ded00099a
content-type: application/octet-stream;
name=pedigree.doc
content-transfer-encoding: base64
content-description: pedigree chart of the great horse
--xx-1234ded00099a--
哟,看上去很复杂,不是吗?不管怎样,让我们浏览一遍细节吧:
如果你注意到了在mime信息头中的content-transfer-encoding,为7bit。因为content-type为
multipart/mixed,编码应该是7bit,8bit或二进制中的一种,7bit是一种广泛使用的格式。
象这样一条信息包含了多种信息。客户程序是如何知道jpg图片,文档和普通文本之间的区别呢?你会
注意到在content-type后面有一个boundary=xx-1234ded00099a参数。这个值用来分离邮件中的不同
部分。它叫做mime边界标记。边界标记的值必须尽可能的唯一,以免在超出邮件范围时发生混乱。
http://www.bkjia.com/phpjc/509090.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/509090.htmltecharticle作者:kartic krishnamurthy 译者:limodou 好,如何创建符合mime的信息呢? 通过上面的一般性的描述,让我们现在看一下所谓的mime信息到底是什...