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 什么是PEAR?(第二篇)
Mar 19 PHP
php文本转图片自动换行的方法
Mar 13 PHP
php define的第二个参数使用方法
Nov 04 PHP
Yii Framework框架获取分类下面的所有子类方法
Jun 20 PHP
php面象对象数据库操作类实例
Dec 02 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
php策略模式简单示例分析【区别于工厂模式】
Sep 25 PHP
关于PHP数组迭代器的使用方法实例
Nov 17 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
js实现简单的验证码
2015/12/25 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
Python自动重试HTTP连接装饰器
2015/04/28 Python
Python中关于使用模块的基础知识
2015/05/24 Python
Python 爬虫的工具列表大全
2016/01/31 Python
python基础教程之Filter使用方法
2017/01/17 Python
Python排序算法实例代码
2017/08/10 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
python+opencv实现阈值分割
2018/12/26 Python
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
车间班长岗位职责
2013/11/30 职场文书
自我检讨报告
2015/01/28 职场文书
慰问信格式
2015/02/14 职场文书