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一些服务器端特性的配置加强php的安全
Oct 09 PHP
PHP 工厂模式使用方法
May 18 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 PHP
用穿越火线快速入门php面向对象
Feb 22 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
thinkphp实现多语言功能(语言包)
Mar 04 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 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
PHP6 mysql连接方式说明
2009/02/09 PHP
php 静态变量与自定义常量的使用方法
2010/01/26 PHP
php实现httpRequest的方法
2015/03/13 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
不安全的常用的js写法
2009/09/15 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
Python批量修改文本文件内容的方法
2016/04/29 Python
对python字典过滤条件的实例详解
2019/01/22 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
Python request使用方法及问题总结
2020/04/26 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
Linux机考试题
2015/07/17 面试题
医学院学生求职简历的自我评价
2013/10/24 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
机关作风建设心得体会
2014/10/22 职场文书
Python中super().__init__()测试以及理解
2021/12/06 Python
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby