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 面向对象的一个例子
Apr 12 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
mac下Apache + MySql + PHP搭建网站开发环境
Jun 02 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
PHP制作图形验证码代码分享
Oct 23 PHP
让你的PHP7更快之Hugepage用法分析
May 31 PHP
php强制下载文件函数
Aug 24 PHP
php中namespace及use用法分析
Dec 06 PHP
YII2框架中查询生成器Query()的使用方法示例
Mar 18 PHP
PHP常用header头定义代码示例汇总
Aug 29 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 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(1)
2006/10/09 PHP
9个PHP开发常用功能函数小结
2011/07/15 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
深入理解JQuery keyUp和keyDown的区别
2013/12/12 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
jquery动态改变form属性提交表单
2014/06/03 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
vue生命周期实例小结
2018/08/15 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
使用python实现生成用户信息
2017/03/20 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
思想政治教育专业个人求职信范文
2013/12/20 职场文书
教师岗位职责范本
2013/12/29 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
贷款收入证明范本
2015/06/12 职场文书
电影雨中的树观后感
2015/06/15 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
Oracle表空间与权限的深入讲解
2021/11/17 Oracle