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 相关文章推荐
smarty实例教程
Nov 19 PHP
php中用文本文件做数据库的实现方法
Mar 27 PHP
一步一步学习PHP(5) 类和对象
Feb 16 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
Oct 10 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
smarty表格换行实例
Dec 15 PHP
PHP Reflection API详解
May 12 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
PHP多进程通信-消息队列使用
Mar 08 PHP
yii框架使用分页的方法分析
Jul 25 PHP
PHP递归统计系统中代码行数
Sep 19 PHP
php use和include区别总结
Oct 13 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
Yii学习总结之安装配置
2015/02/22 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
jQuery内存泄露解决办法
2016/12/13 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
Python获取当前时间的方法
2014/01/14 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
python实现简单银行管理系统
2019/10/25 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
公司营业员的自我评价
2014/03/04 职场文书
如何写好自荐信
2014/04/07 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
运动会主持词大全
2015/07/02 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers
postgresql中如何执行sql文件
2023/05/08 PostgreSQL