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


Posted in PHP onJune 10, 2015

本文实例讲述了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 相关文章推荐
PHP中函数rand和mt_rand的区别比较
Dec 26 PHP
PHP flush()与ob_flush()的区别详解
Jun 03 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
微信随机生成红包金额算法php版
Jul 21 PHP
YII框架批量插入数据的方法
Mar 18 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
Apr 04 PHP
php中时间函数date及常用的时间计算
May 12 PHP
PHP实现批量修改文件名的方法示例
Sep 18 PHP
Windows服务器中PHP如何安装redis扩展
Sep 27 PHP
php动态变量定义及使用
Jun 10 #PHP
php中动态变量用法实例
Jun 10 #PHP
PHP获取文件行数的方法
Jun 10 #PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 #PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 #PHP
php将图片文件转换成二进制输出的方法
Jun 10 #PHP
smarty模板判断数组为空的方法
Jun 10 #PHP
You might like
提升PHP速度全攻略
2006/10/09 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
win7安装python生成随机数代码分享
2013/12/27 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
python简单区块链模拟详解
2019/07/03 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
Python递归实现打印多重列表代码
2020/02/27 Python
python实现门限回归方式
2020/02/29 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
安全技术说明书
2014/05/09 职场文书
奥巴马英文演讲稿
2014/05/15 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
教师个人年度总结
2015/02/11 职场文书
作弊检讨书范文
2015/05/06 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
Python基础之进程详解
2021/05/21 Python
52条SQL语句教你性能优化
2021/05/25 MySQL
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android