虽然有现成的类库(如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]
更多PHP相关知识,请访问jquery中文网!