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 相关文章推荐
利用递归把多维数组转为一维数组的函数
Oct 09 PHP
PHP编程之高级技巧——利用Mysql函数
Oct 09 PHP
php curl基本操作详解
Jul 23 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
Nov 07 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
php实现递归与无限分类的方法
Feb 16 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
Mar 21 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
Feb 04 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 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
第四节--构造函数和析构函数
2006/11/16 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
2014/06/23 PHP
PHP静态文件生成类实例
2014/11/29 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
js清除input中type等于file的值域(示例代码)
2013/12/24 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
详解vue中computed 和 watch的异同
2017/06/30 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
保安拾金不昧表扬信
2014/01/15 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
求职简历自我评价2015
2015/03/10 职场文书
国博复兴之路观后感
2015/06/02 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书