虽然有现成的类库(如PEAR)可以很方便地实现附件添加和发送,但是对于一些小站点(服务器硬件、网站规模都不理想),安装PEAR可能会带来不必要的负担,降低WEB程序运行效率。
通过对邮件格式的认识,我们可以写一个脚本来发送附件。代码并不长:
[php]
function mailSend($to, $subject, $message, $attach, $from, $replyto) {
//定义边界线
$boundary = uniqid();
//生成邮件头
$header = "From: $from
Reply-to:$replyto
Content-type: multipart/mixed; boundary="$boundary"";
//获取附件文件的MIME类型
$mimeType = mime_content_type($attach);
//对附件文件进行编码和切分
$fp = fopen($attach, "r");
if ($fp) {
$content = fread($fp, filesize($attach));
$content = chunk_split(base64_encode($content));
fclose($fp);
}
else {
die("Failed to open file…");
}
//生成邮件主体
$body = "
–$boundary
Content-type: text/plain; charset=utf-8;
Content-transfer-encoding: 8bit
$message
–$boundary
Content-Type: $mimeType; name=$attach
Content-Disposition: attachment; filename=$attach
Content-Transfer-Encoding: base64
$content
–$boundary–";
//发送邮件
mail($to, $subject, $body, $header) or die("Failed to send mail…");
}
[/php]
本文出自 Lesca技术宅,转载时请注明出处及相应链接。
本文永久链接: http://lesca.me/archives/mail-with-attachment-and-reply-to-header-in-php.html