php简单实现发送带附件的邮件
本文实例讲述了php简单实现发送带附件的邮件。分享给大家供大家参考。具体如下:
下面是静态html代码:
<html> <head> <title>带附件的邮件发送</title> </head> <body> <formmethod="post"name="form1"action="sendmail.php"ENCTYPE="multipart/form-data"> <table> <tr> <td>发送人:</td> <td><inputtype="text"name="from"></td> </tr> <tr> <td>收件人:</td> <td><inputtype="text"name="to"></td> </tr> <tr> <td>邮件主题:</td> <td><inputtype="text"name="subject"></td> </tr> <tr> <td>邮件内容:</td> <td><textareaname="body"></textarea></td> </tr> <tr> <td>附件上传:</td> <td><inputtype="file"name="upload_file"></td> </tr> <tr> <tdspan=2> <inputtype="submit"value="提交"> <inputtype="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程序设计有所帮助。