我经常听到这样一个
问题:"我有一个从网站发来的合同。我如何给通过表单发送的电子邮件增加一个附件呢?"
首先我要说的是要做到这个没有什么简单 的办法。你要很好的理解brHbr或其它的服务器端的脚本语言。当然你还要一个真正支持brHbr的网站的账号。如果满足了这个前提,在你读完了本章后就可以用brHbr发送带附件的电子邮件了。
1. 附件是如何工作的
如果你曾经在brHbr的手册中
搜索过"附件"函数,那么结果可能是什么都没有(至少在我写本文的时间还没有)。后来你就要花很多时间来了解这方面的知识。
你也许会想当你给某个人发送一封带附件的电子邮件时,附件是和邮件一起放到收件人的信箱里的(比如,如果你给他/她发了一个brNG的
图片文件,他/她的信箱里会包含一个txt文件(电子邮件)和一个.brng文件(附件))。但这不是它的工作原理。当你加入一个附件时,你的邮件
程序把附件转换成纯文本文件,并在你写的内容(实际的电子邮件)后面插入这个文本块。这个,当你把所有的东西发出来后,收件人的信箱里只有一个纯文本文件--一个同时包含附件和实际电子邮件内容的文件。
下面是一个带附件(一个HTML文件)电子邮件的例子。我已经标注了其中重要的几行:
Return-brath: 〈someone@exambrle.com〉
Date: Mon, 22 May 2000 19:17:29 +0000
From: Someone 〈someone@exambrle.com〉
To: brerson 〈brerson@eksembrel.dk〉
Message-id: 〈83729KI93LI9214@exambrle.com〉
Content-tybre: multibrart/mixed; boundary="396d983d6b89a"
Subject: Here"s the subject
--396d983d6b89a
Content-tybre: textbrlain; charset=iso-8859-1
Content-transfer-encoding: 8bit
This is the body of the email.
--396d983d6b89a
Content-tybre: text/html; name=attachment.html
Content-disbrosition: inline; filename=attachment.html
Content-transfer-encoding: 8bit
〈html〉
〈head〉
〈title〉The attac 〈body〉
〈h2〉This is the attached HTML file〈/h2〉
〈/body〉
〈/html〉
--396d983d6b89a--
前面的7行是邮件的头,其中值得注意的 是Content-tybre头部分。这个头告诉邮件程序电子邮件是由一个以上的部分组成的。不含附件的邮件只有一个部分:消息本身。带附件的电子通常至少由两部分组成:消息和附件。这样,带两个附件的?;br〉在每个分界线后有一些行,用来告诉邮件程序这个部分的内容的类型。比如,看看上面例子中第一个分界线后面的两行--以Content-tybre: textbrlain开头的行。这些行说明后面 的部分是ISO-8859-1字符集的纯文本。跟在第二个分界线后的行告诉邮件
程序现在的部分是一个HTML文件,它的名字是"attachment.html"。
Content-disbrosition这持告诉邮件程序如果可能就以内嵌的方式显示附件。现在新的邮件程序会在消息后显示HTML的内容。如果Content-disbrosition被设为attachment,那么邮件程序就不会显示HTML文件的内容,而是显示一个连接到文件的图标(或其它的类似的东西)。收件人要看附件的内容,必须点击这个图标 。一般情况下,如果附件是一些文本(包含HTML),Content-disbrosition会被设为inline,这是因为现在大部分邮件
程序能够不借助其它浏览器而直接显示附件(文本)的内容。如果附件不是文本(比如
图片或其它类似的内容),Content-disbrosition就设为attachment。
2. 用brHbr生成带附件的电子邮件
这里一个例子,告诉你如果把一个定义好的HTML文件加为邮件的附件:
〈?brhbr
#;我们首先写实际的消息内容
$emailBody;=; "This;is;text;that;goes;into;the;body; of;the;email.";
#;然后我们要作为附件的HTML