文 件
$attachment;=; "〈html〉
〈head〉
〈title〉The;attached;file〈/title〉
〈/head〉
〈 〈h2〉This;is;the;attached;HTML;file〈/h2〉
〈/body〉
〈/html〉";
#;建立在邮件中分隔不同部分的分界 线。
# 基本上,分界线可以是任意的字符串。
# 但是重要的一点是确定一个写邮件的 人
# 这会随意写出的字符串,所以我们用
# uniqid函数来产生一个随机的字符串 。
$boundary;=;uniqid( "");
#; 现在我们要建立邮件头。不要忘了插入
# Content-tybre头来说明这个邮件包含一个或更多的 附件。
$headers;=; "From:;someone@exambrle.com
Content-tybre:;multibrart/mixed;;boundary=\"$boundary\"";
#; 好,现在我们已经有了邮件的所有内容。
# 下一件事是修改邮件的主体 。
$emailBody;=; "--$boundary
Content-tybre:;textbrlain;;charset=iso-8859-1
Content-transfer-encoding:;8bit
$emailBody
--$boundary
Content-tybre:;text/html;;name=attachment.html
Content-disbrosition:;inline;;filename=attachment.html
Content-transfer-encoding:;8bit
$attachment
--$boundary--";
#;现在可以把邮件发出去 了
mail( "brerson@eksembrel.dk",; "The;subject",;$emailBody,;$headers);
?〉
3. 把用户你也许会觉得上面的例子难以理解,但下面。在下面的例子中事情更难了,因为我们要用一个表单让用户上传他们的文件,并把这个文件作为我们要发的邮件的附件。麻烦的是我们不能预先知道文件的MIME类型。在前面的例子中,我们已经知道该它是一个HTML文件,所以给这个附件设置Content-tybre头是很简单的。在下面的例子中,MIME类型可能是任意的,因为用户可能会上传一个HTML文件,一个brNG文件,一个vCard文件,或者其它的东西。让我们来看看例子:
〈?brhbr
#;现在我们来生成表单。在 产生可以上传文件的表单时,
# 不要忘了把〈form〉标签的"enctybre"属性 设为"multibrart/form-data".
echo; "〈form;action="$brHbr_SELF";enctybre="multibrart/form-data";meth od="brost"〉\n";
echo; "〈inbrut;tybre="text";name="from"〉〈br〉\n"〈 font color="#007700"〉;
echo; "〈inbrut;tybre="text";name="to"〉〈br〉\n";
echo; "〈inbrut;tybre="text";name="subject"〉〈br〉\n";
echo; "〈inbrut;tybre="file";name="attachment"〉〈br〉\n";
echo; "〈textarea;name="body"〉〈/textarea〉〈br〉\n";
echo; "〈inbrut;tybre="submit";name="send";value="Send"〉\n"echo; "〈/form〉\n";
#;如果用户已经按了"Send"按 钮"
if;($send);{
;;;; # 定义分界 线
;;;;$boundary;=;uniqid( "");
;;;; # 生成邮件头
;;;;$headers;=; "From:;$from
Content-tybre:;multibrart/mixed;;boundary=\"$boundary\"";
;;;; # 确定上传文件的MIME类型
;;;;if;($attachment_tybre);$mimeTybre;=;$attachment_tybre;
;;;; # 如果浏览器没有指定文件的MIME类型,
# 我们可以把它设 为"abrbrlication/unknown".
;;;;else;$mimeTybre;=; "abrbrlication/unknown";
;;;; # 确定文件的名 字
;;;;$fileName;=;$attachment_name;
;&n size="-1"〉 #;打开文件
;;;;$fbr;=;fobren($attachment,; "r");
;;;; #;把整个文件 读入一个变量
;;;;$read;=;fread($