php实现邮件发送并带有附件


Posted in PHP onJanuary 24, 2014

emailclass.php

<? 
class CMailFile {
var $subject; 
var $addr_to; 
var $text_body; 
var $text_encoded; 
var $mime_headers; 
var $mime_boundary = "--==================_846811060==_"; 
var $smtp_headers;
function CMailFile($subject,$to,$from,$msg,$filename,$downfilename,$mimetype = "application/octet-stream",$mime_filename = false) { 
$this->subject = $subject; 
$this->addr_to = $to; 
$this->smtp_headers = $this->write_smtpheaders($from); 
$this->text_body = $this->write_body($msg); 
$this->text_encoded = $this->attach_file($filename,$downfilename,$mimetype,$mime_filename); 
$this->mime_headers = $this->write_mimeheaders($filename, $mime_filename); 
}
function attach_file($filename,$downfilename,$mimetype,$mime_filename) { 
$encoded = $this->encode_file($filename); 
if ($mime_filename) $filename = $mime_filename; 
$out = "--" . $this->mime_boundary . "\n"; 
$out = $out . "Content-type: " . $mimetype . "; name=\"$filename\";\n"; 
$out = $out . "Content-Transfer-Encoding: base64\n"; 
$out = $out . "Content-disposition: attachment; filename=\"$downfilename\"\n\n"; 
$out = $out . $encoded . "\n"; 
$out = $out . "--" . $this->mime_boundary . "--" . "\n"; 
return $out; 
}
function encode_file($sourcefile) { 
if (is_readable($sourcefile)) { 
$fd = fopen($sourcefile, "r"); 
$contents = fread($fd, filesize($sourcefile)); 
$encoded = chunk_split(base64_encode($contents)); 
fclose($fd); 
} 
return $encoded; 
}
function sendfile() { 
$headers = $this->smtp_headers . $this->mime_headers; 
$message = $this->text_body . $this->text_encoded; 
mail($this->addr_to,$this->subject,$message,$headers); 
} 3water.com
function write_body($msgtext) { 
$out = "--" . $this->mime_boundary . "\n"; 
$out = $out . "Content-Type: text/plain; charset=\"us-ascii\"\n\n"; 
$out = $out . $msgtext . "\n"; 
return $out; 
}
function write_mimeheaders($filename, $mime_filename) { 
if ($mime_filename) $filename = $mime_filename; 
$out = "MIME-version: 1.0\n"; 
$out = $out . "Content-type: multipart/mixed; "; 
$out = $out . "boundary=\"$this->mime_boundary\"\n"; 
$out = $out . "Content-transfer-encoding: 7BIT\n"; 
$out = $out . "X-attachments: $filename;\n\n"; 
return $out; 
}
function write_smtpheaders($addr_from) { 
$out = "From: $addr_from\n"; 
$out = $out . "Reply-To: $addr_from\n"; 
$out = $out . "X-Mailer: PHP3\n"; 
$out = $out . "X-Sender: $addr_from\n"; 
return $out; 
} 
}
/*用法 - 例如:mimetype 为 "image/gif" 
$mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename,$mimetype); 
$mailfile->sendfile();
$subject -- 主题 
$sendto -- 收信人地址 
$replyto -- 回复地址 
$message -- 信件内容 
$filename -- 附件文件名 
$downfilename -- 下?的文件名 
$mimetype -- mime类型 
*/ 
?>

演示示例

<?php 
require_once('emailclass.php');
//发送邮件
//主? 
$subject = "test send email";
//收件人 
$sendto = 'abc@163.com';
//?件人 
$replyto = 'cdf@163.com';
//?热 3water.com
$message = "test send email content";
//附件 
$filename = 'test.jpg';
//附件??e 
$mimetype = "image/jpeg";
$mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename,$excelname,$mimetype); 
$mailfile->sendfile(); 
?>
PHP 相关文章推荐
php 禁止页面缓存输出
Jan 07 PHP
PHP number_format() 函数定义和用法
Jun 01 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
thinkphp模板用法和内容输出实例
Nov 28 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
PHP生成指定随机字符串的简单实现方法
Apr 01 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
Apr 26 PHP
php+js实现裁剪任意形状图片
Oct 31 PHP
php操作redis数据库常见方法实例总结
Feb 20 PHP
PHP7变量处理机制修改
Mar 09 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 #PHP
php 发送带附件邮件示例
Jan 23 #PHP
php 获取页面中指定内容的实现类
Jan 23 #PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 #PHP
php 字符串压缩方法比较示例
Jan 23 #PHP
php 生成短网址原理及代码
Jan 23 #PHP
解决php接收shell返回的结果中文乱码问题
Jan 23 #PHP
You might like
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
由浅入深讲解Javascript继承机制与simple-inheritance源码分析
2015/12/13 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
小程序瀑布流组件实现翻页与图片懒加载
2020/05/19 Javascript
Django中login_required装饰器的深入介绍
2017/11/24 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
python3判断url链接是否为404的方法
2018/08/10 Python
python八皇后问题的解决方法
2018/09/27 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
python绘制地震散点图
2019/06/18 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
一套C#面试题
2013/10/09 面试题
中间件分为哪几类
2016/09/18 面试题
列车长先进事迹材料
2014/01/25 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
anaconda python3.8安装后降级
2021/06/11 Python
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL