|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
刚开始因为习惯于ASP格式的写法,总是在这些方面出现问题,自己还总是找不到问题所在,这就提醒了自己,在写代码的时候一定要认真,不能粗心地老是少个“;”或者字母大小写不分,要不然很可能找半天都找不到错误。mime "好,若何创立合适MIME的信息呢?" 经由过程下面的普通性的描写,让咱们如今看一下所谓的MIME信息究竟是甚么!
最复杂的MIME信息
这个信息没有任何段,也就是,没有附件。但是,由于它是一个MIME动静,它必需有需要的头。
From: php@php.net
To: 'Alex (the Great)' <alex@greece.net>
Subject: Bucephalus
MIME-Version: 1.0
Hello Alexander,
How's Bucephalus doing?
这外面没有甚么,它只是一个复杂的具有MIME头的合适RFC-822
的信息(文本邮件)。注重,假如没有
指定Content-Type头,则假定为Content-Type: text/plain;charset='us-ascii'!固然,它有些复杂,庞杂
一些的以下:
From: 'Alex (the Great)' <alex@greece.net>
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
<.....base64 encoded jpg image of Bucephalus...>
"嗨,然而我想发送一个word文档和一张我的小狗的图片在统一封邮件中...
!"一个用户说!假如是真
的,下面的谁人例子就太复杂了,而且它没有足够的内容来撑持喜好者和古代邮件处置方面的需求。实践上,
很多的邮件客户端软件乃至不克不及显示描写字段!
这就是咱们所面对的"多局部信息"。
多局部信息(Multipart Messages)
这个概念答应在一封邮件中发送多条项目。例如,假定Alexander想要给php@php.net发送一封他的马的
照片的邮件,同时还附带有马的家族图谱及出色的申明!如许一个复杂的请求没有多局部动静的概念是没法
被知足的。在这类情形下,咱们创立了一个利用Content-Type的信息头的封装来撑持邮件的分歧局部,以便
收信人失掉图片,家族图谱和出色的申明!
Content-Type 头如今具有一个"multipart"的值,它暗示这是一个完全的邮件信息而且这个头只封装了
信息。并且它还有一个"mixed"的子类型(究竟图片,家族图谱和7bit文本信息是分歧的类型,对吗?)。
让咱们看一下全部图片看上去象:
From: 'Alex (the Great)' <alex@greece.net>
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"
<.....base64 encoded jpg image of Bucephalus...>
--XX-1234DED00099A
Content-Type: application/octet-stream;
name="pedigree.doc"
Content-Transfer-Encoding: base64
Content-Description: "Pedigree Chart of the great horse"
<.....base64 encoded doc (pedigree.doc) of Bucephalus...>
--XX-1234DED00099A--
哟,看上去很庞杂,不是吗?不论如何,让咱们阅读一遍细节吧:
假如你注重到了在MIME信息头中的Content-Transfer-Encoding,为"7bit"。由于Content-Type为
multipart/mixed,编码应当是7bit,8bit或二进制中的一种,7bit是一种普遍利用的格局。
象如许一条信息包括了多种信息。客户法式是若何晓得JPG图片,文档和通俗文本之间的区分呢?你会
注重到在Content-Type前面有一个boundary="XX-1234DED00099A"参数。这个值用来分别邮件中的分歧
局部。它叫做MIME界限标志。界限标志的值必需尽量的独一,以避免在超越邮件局限时产生凌乱。
"正告"信息(译者:指"This is a MIME Encoded
Message")在那边是为了让不合适MIME的客户法式
可以把它显示给用户,不然他们就不睬解一个空白邮件是甚么意思。
如今,回到界限标志。假如你察看这个复杂的邮件,会发明界限标志(XX-1234DED00099A在每个分
都呈现了,也就是,在每局部之间都利用了一个界限标志,但是,每一个界限标志都以两个毗连符入手下手。
很主要的一点需求注重的就是在最初一个MIME段的前面,界限标志不单单以那两个边接符作为入手下手,
同时也以它俩作为停止。这一点必定不克不及健忘,由于它界说了邮件的局限。
让咱们看一下前两个MIME段:
第一段是通俗文本信息,因而Content-Type为text/plain,而且编码为7bit(咱们也能够省略它,
由于假如不指明它也会默许为如斯)。
第二个就是JPEG图片。响应的暗示为Content-Type: image/jpg。name="buce.jpg"(呈现在
Content-Type的前面,称之为参数),指出了文件的名字;它就是可以在客户法式中看到的附件
的名字。假如不给出name="buce.jpg"
,描写字段(假如给出)将作为附件的名字显示出来(然
而,在一切客户法式中它不是一致的做法)。
注重JPEG
图片可以在邮件件中被显示出来,假如客户法式可以显示行内附件。或,你可以向客户程
指明你想若何显示附件。例如,假如存在
Content-Disposition: attachment 头,JPEG图片将被显示为一个附件图标。
说说这一个月左右的学习情况和心得吧!我个人认为,既然决定了去做一件事,那就要以认真的态度去对待!既然决定来学习了,那不管当初是抱着怎样的心态来到这个培训班的,都要让自己认真的投入到学习中。 |
|