php教程

超轻量级php框架startmvc

php简单实现发送带附件的邮件

更新时间:2020-03-04 19:27:00 作者:startmvc
本文实例讲述了php简单实现发送带附件的邮件。分享给大家供大家参考。具体如下:下面是

本文实例讲述了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程序设计有所帮助。

php 带附件 邮件