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 SEO优化之URL优化方法
Apr 21 PHP
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
遍历指定目录下的所有目录和文件的php代码
Nov 27 PHP
php单例模式实现(对象只被创建一次)
Dec 05 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
PHP实现事件机制实例分析
Jun 26 PHP
CI框架集成Smarty的方法分析
May 17 PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 PHP
laravel框架创建授权策略实例分析
Nov 22 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中调用JAVA
2006/10/09 PHP
PHP个人网站架设连环讲(四)
2006/10/09 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
js实现仿京东2级菜单效果(带延时功能)
2015/08/27 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
详解Vue.js中.native修饰符
2018/04/24 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
Vue 一键清空表单的实现方法
2020/02/07 Javascript
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
python变量不能以数字打头详解
2016/07/06 Python
Python实现的堆排序算法示例
2018/04/29 Python
使用python实现对元素的长截图功能
2019/11/14 Python
详解Selenium-webdriver绕开反爬虫机制的4种方法
2020/10/28 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
环境科学毕业生自荐信
2013/11/21 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
贷款担保书
2015/01/20 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
JS 基本概念详细介绍
2021/10/16 Javascript