之前,这是个描述信息,不用管它。然后就是第一个boundary:
------=_NextPart_000_0008_01C2BCB0.9CF9AE70,它告诉用户的邮件程序这里有一部份的内容。注意这里是--boundary,就是说在boundary前面加了两个-,大家还请注意看最后一个boundary,它的前后都加了两个-,表示整个邮件结束。
Content-type:text/html;charset="gb2312" 说明本部分内容的文档类型是html格式的,
Content-Transfer-Encoding: quoted-printable 说明本部分内容使用 quoted-printable 方法
编码的,当然,下面的内容要确实是 quoted-printable 编码的,否则用户就看不到正确的内容了。
邮件内容没什么好说的,然后是下一个 boundary,这里的东西就是我们要的那个popup_thanks.gif了。
看MIME类型是:Content-Type: image/gif 图片一般就用base64编码,所以这里是
Content-Transfer-Encoding: base64 再看下面是一行
Content-Disposition: attachment;filename="thanks.gif"
这里的attahment表示此图片作为附件,它还可以是inline,那样的话这个图片就会直接在收件人的
邮件程序的邮件显示区域里显示了。filename指定了在附件区域显示什么样的文件名,这里就把
popup_thanks.gif改成了thanks.gif.下面还有一句
Content-Location: file:///C:/DEV/perl/images/popup_thanks.gif
指定文件的原始路径。好像没用啊?其实很重要,注意html文件里连接这个图片的标签里的src是怎么样写
的?这两个之间要是对不上,那末邮件显示的时候,附件里有图,但邮件还是开了天窗了。好了,基本
就是这样。不,还有个问题,做程序的时候,怎样才能得到需要的编码后的文件啊?perl里怎么样做
我不知道,CPAN里也许有这样的package吧,那位对编码熟悉,也可以自己写,不过我做得时候取巧了。
大家用过IE5的另存为.mht文件吗?对了,就是它!把需要发送的html邮件用IE5在本地打开,再另存为
mht文件,所有的编码都得到了,而且图片的链接关系也都是现成的了,其他的按需要调整一下,帖到你的
程序里就万事大吉。更进一步,如果需要做到像263那样,从页面上接收包括正文,接受者以及各种可能的附件
等信息再发送呢?有点复杂了,也不是这里要讨论的,那位高手做过这些东西,可以把经验贡献出来,让
我们一起学习,这篇就是抛砖之作了。
书面版权所有,书刊转载请与本人联系
参考了系列好文《用PHP发送MIME邮件》,里面有较为详细的MIME介绍,强烈建议阅读