立即登录 注册新帐号

http://www.chutianz.com - 楚天站长站

会员投稿 匿名投稿 投稿指南 RSS订阅 楚天站长站推荐:
搜索: 您的位置主页 > 网络编程 > Php编程 > 阅读资讯:用PHP发送有附件的电子邮件(2)

用PHP发送有附件的电子邮件(2)

2011-10-08 16:58:07 来源:楚天站长站 【 】 点击:我要投稿 发表评论

, 'The subject', $emailBody, $headers);
?>

3. 把用户上传的文件作为附件


 

你也许会感到上面的例子难以懂得,但下面...。在下面的例子中事情更难了,由于我们要用一个表单让用户上传他们的文件,并把这个文件作为我们要发的邮件的附件。麻烦的是我们不能预先知道文件的MIME类型。在前面的例子中,我们已经知道该它是一个HTML文件,所以给这个附件设置Content-type头是很简略的。在下面的例子中,MIME类型可能是任意的,由于用户可能会上传一个HTML文件,一个PNG文件,一个vCard文件,或者其它的东西。让我们来看看例子:
 

<?php
# 现在我们来天生表单。在产生可以上传文件的表单时,
# 不要忘了把<form>标签的'enctype'属性设为'multipart/form-data'.
echo '<form action='$PHP_SELF' enctype='multipart/form-data' method='post'>\n';
echo '<input type='text' name='from'><br>\n';
echo '<input type='text' name='to'><br>\n';
echo '<input type='text' name='subject'><br>\n';
echo '<input type='file' name='attachment'><br>\n';
echo '<textarea name='body'></textarea><br>\n';
echo '<input type='submit' name='send' value='Send'>\n';
echo '</form>\n';


 

# 假如用户已经按了'Send'按钮'
if ($send) {
# 定义分界限
$boundary = uniqid( '');


 

# 天生邮件头
$headers = 'From: $from
Content-type: multipart/mixed; boundary=\'$boundary\'';


 

# 断定上传文件的MIME类型
if ($attachment_type) $mimeType = $attachment_type;
# 假如浏览器没有指定文件的MIME类型,
# 我们可以把它设为'application/unknown'.
else $mimeType = 'application/unknown';


 

# 断定文件的名字
$fileName = $attachment_name;


 

# 打开文件
$fp = fopen($attachment, 'r');
# 把全部文件读进一个变量
$read = fread($fp, filesize($attachment));


 

# 好,现在变量$read中保留的是包含全部文件内容的文本块。
# 现在我们要把这个文本块转换成邮件程序可以读懂的格局
# 我们用base64方法把它编码
$read = base64_encode($read);


 

# 现在我们有一个用base64方法编码的长字符串。
# 下一件事是要把这个长字符串切成由每行76个字符组成的小块
$read = chunk_split($read);


 

# 现在我们可以建立邮件的主体
$body = '--$boundary
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit


 

$body


 

--$boundary
Content-type: $mimeType; name=$fileName
Content-disposition: attachment; filename=$fileName
Content-transfer-encoding: base64


 

$read
--$boundary--';
# 发送邮件
mail($to, $subject, $body, $headers);
}
?>
这就是全部内容。假如你不能很好地懂得上面的例子,我的建议是给你自己发送几个带附件的邮件,然后仔细研究邮件的源代码。
 

感谢 靓哥 的投稿 本文仅代表作者观点,与楚天站长站立场无关。

分享到:

共2页: 上一页12下一页

数据统计中!!

tags:电子邮件,附件,发送,PHP,用,

 责任编辑:靓哥
  • 相关文章列表                                                                                     收藏 - 挑错 - 推荐 - 打印
    评论总数: [ 查看全部 ] 网友评论