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极大的增强功能和性能
Oct 09 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
Apr 15 PHP
php设计模式 Bridge (桥接模式)
Jun 26 PHP
php去除头尾空格的2种方法
Mar 16 PHP
WordPress分页伪静态加html后缀
Jun 08 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 PHP
php文件上传 你真的掌握了吗
Nov 28 PHP
php微信公众平台开发(四)回复功能开发
Dec 06 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
php strftime函数获取日期时间(switch用法)
May 16 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数组应该有多大的分析
2009/07/30 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
smarty简单分页的实现方法
2014/10/27 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
Python中的filter()函数的用法
2015/04/27 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
python3 求约数的实例
2019/12/05 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
某公司的.net工程师面试题笔试题
2013/11/22 面试题
事业单位请假制度
2014/01/13 职场文书
公司担保书格式范文
2014/05/12 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
个人授权委托书范本
2014/09/14 职场文书
工作所在部门证明
2014/09/21 职场文书
Win10 Anaconda安装python-pcl
2022/04/29 Servers