小女巫 发表于 2015-2-4 00:20:28

PHP网站制作之用PHP发送MIME邮件(二)

刚开始因为习惯于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图片将被显示为一个附件图标。
说说这一个月左右的学习情况和心得吧!我个人认为,既然决定了去做一件事,那就要以认真的态度去对待!既然决定来学习了,那不管当初是抱着怎样的心态来到这个培训班的,都要让自己认真的投入到学习中。

谁可相欹 发表于 2015-2-4 11:58:07

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

老尸 发表于 2015-2-9 22:29:36

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

金色的骷髅 发表于 2015-2-12 09:27:28

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

因胸联盟 发表于 2015-2-18 11:29:00

当然这种网站的会员费就几十块钱。

分手快乐 发表于 2015-2-18 17:19:49

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

兰色精灵 发表于 2015-2-26 05:05:18

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

乐观 发表于 2015-3-8 12:09:28

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

冷月葬花魂 发表于 2015-3-15 07:48:26

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

精灵巫婆 发表于 2015-3-17 08:08:22

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,

再见西城 发表于 2015-3-18 01:58:31

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

不帅 发表于 2015-3-24 02:04:14

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

海妖 发表于 2015-4-12 05:23:55

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

变相怪杰 发表于 2015-4-13 20:12:13

说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。

柔情似水 发表于 2015-4-25 09:24:52

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。

愤怒的大鸟 发表于 2015-6-23 20:06:33

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

再现理想 发表于 2015-6-26 04:03:15

说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。

飘灵儿 发表于 2015-6-28 17:30:38

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

小女巫 发表于 2015-7-5 00:03:16

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

小妖女 发表于 2015-7-12 10:47:06

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
页: [1]
查看完整版本: PHP网站制作之用PHP发送MIME邮件(二)