本文实例讲述了php简单实现发送带附件的邮件。分享给大家供大家参考。具体如下:
下面是静态html代码:
<html> <head> <title>带附件的邮件发送</title> </head> <body> <form method=\"post\" name=\"form1\" action=\"sendmail.php\" ENCTYPE=\"multipart/form-data\"> <table> <tr> <td>发送人:</td> <td><input type=\"text\" name=\"from\"></td> </tr> <tr> <td>收件人:</td> <td><input type=\"text\" name=\"to\"></td> </tr> <tr> <td>邮件主题:</td> <td><input type=\"text\" name=\"subject\"></td> </tr> <tr> <td>邮件内容:</td> <td><textarea name=\"body\"></textarea></td> </tr> <tr> <td>附件上传:</td> <td><input type=\"file\" name=\"upload_file\"></td> </tr> <tr> <td span=2> <input type=\"submit\" value=\"提交\"> <input type=\"reset\" value=\"重置\"> </td> </tr> </table> </form> </body> </html>
sendmail.php文件代码:
<?php
//获得表单信息
$from = $_POST[\'from\'];
$to = $_POST[\'to\'];
$subject = $_POST[\'subject\'];
$body = $_POST[\'body\'];
// 定义分界线
$boundary = \"345894369383\"; //分界线是一串无规律的字符
//设置header
$header = \"Content-type: multipart/mixed; boundary= $boundary/r/n\";
$header .= \"From:$from/r/n\";
//获得上传文件的文件内容
$file = $_FILES[\'upload_file\'][\'tmp_name\'];
//确定上传文件的MIME类型
$mimeType = $_FILES[\'upload_file\'][\'type\'];
//获得上传文件的文件名
$fileName = $_FILES[\'upload_file\'][\'name\'];
//读取上传文件
$fp = fopen($file, \"r\"); //打开文件
$read = fread($fp, filesize($file)); //读入文件
$read = base64_encode($read); //base64编码
$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--\";
//发送邮件 并输出是否发送成功的信息
if(mail($to, $subject,$body,$header))
{
echo \"信件发送成功\";
}
else
{
echo \"信件发送失败\";
}
?>
希望本文所述对大家的php程序设计有所帮助。
本文地址:https://www.stayed.cn/item/24385
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我