当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-28 11:00:14 浏览: 评论:0 

这篇文章主要介绍了php简单实现发送带附件的邮件,涉及附件上传及邮件发送的相关技巧,需要的朋友可以参考下,本文实例讲述了php简单实现发送带附件的邮件,分享给大家供大家参考,具体如下:

下面是静态html代码:

  1. <html> 
  2.  <head> 
  3.  <title>带附件的邮件发送</title> 
  4.  </head> 
  5.  <body>  
  6.  <form method="post" name="form1" action="sendmail.php" ENCTYPE="multipart/form-data">  
  7.   <table>  
  8.   <tr> 
  9.    <td>发送人:</td>  
  10.    <td><input type="text" name="from"></td>  
  11.   </tr>  
  12.   <tr> 
  13.    <td>收件人:</td>  
  14.    <td><input type="text" name="to"></td>  
  15.   </tr>  
  16.   <tr> 
  17.    <td>邮件主题:</td>  
  18.    <td><input type="text" name="subject"></td>  
  19.   </tr>  
  20.   <tr> 
  21.    <td>邮件内容:</td>  
  22.    <td><textarea name="body"></textarea></td>  
  23.   </tr>  
  24.   <tr> 
  25.    <td>附件上传:</td>  
  26.    <td><input type="file" name="upload_file"></td>  
  27.   </tr>  
  28.   <tr>  
  29.    <td span=2> 
  30.    <input type="submit" value="提交">  
  31.    <input type="reset" value="重置">  
  32.    </td>  
  33.   </tr>  
  34.   </table>  
  35.  </form>  
  36.  </body>  
  37. </html> 

sendmail.php文件代码:

  1. <?php   
  2. //获得表单信息  
  3. $from = $_POST['from'];  
  4. $to = $_POST['to'];   
  5. $subject = $_POST['subject'];   
  6. $body = $_POST['body'];   
  7. // 定义分界线   
  8. $boundary = "345894369383"//分界线是一串无规律的字符  
  9. //设置header  
  10. $header = "Content-type: multipart/mixed; boundary= $boundary/r/n";   
  11. $header .= "From:$from/r/n";   
  12. //获得上传文件的文件内容  
  13. $file = $_FILES['upload_file']['tmp_name'];   
  14. //确定上传文件的MIME类型   
  15. $mimeType = $_FILES['upload_file']['type'];   
  16. //获得上传文件的文件名   
  17. $fileName = $_FILES['upload_file']['name'];   
  18. //读取上传文件   
  19. $fp = fopen($file"r"); //打开文件  
  20. $read = fread($fpfilesize($file)); //读入文件  
  21. $read = base64_encode($read); //base64编码   
  22. $read = chunk_split($read); //切割字符串  
  23. //建立邮件的主体,分为邮件内容和附件内容两部分  
  24. $body = "--$boundary  
  25. Content-type: text/plain; charset=iso-8859-1   
  26. Content-transfer-encoding: 8bit   
  27. $body  
  28. --$boundary  
  29. Content-type: $mimeType; name=$fileName  
  30. Content-disposition: attachment; filename=$fileName  
  31. Content-transfer-encoding: base64   
  32. $read  
  33. --$boundary--";   
  34. //发送邮件 并输出是否发送成功的信息  
  35. if(mail($to$subject,$body,$header))   
  36. {  
  37.   echo "信件发送成功";   
  38. }  
  39. else  
  40. {  
  41.   echo "信件发送失败";   
  42. }  
  43. ?>

Tags: php发送带附件的邮件

分享到: