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 相关文章推荐
dedecms模板标签代码官方参考
Mar 17 PHP
php中获取指定IP的物理地址的代码(正则表达式)
Jun 23 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
PHP重载基础知识回顾
Sep 10 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判断网页是否gzip压缩
2013/06/25 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
JavaScript 的继承
2011/10/01 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
Python实现周期性抓取网页内容的方法
2015/11/04 Python
python实现扫描日志关键字的示例
2018/04/28 Python
python交易记录链的实现过程详解
2019/07/03 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
简单了解django文件下载方式
2020/02/10 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
python实现简单的购物程序代码实例
2020/03/03 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
四风问题查摆材料
2014/08/25 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
Oracle锁表解决方法的详细记录
2022/06/05 Oracle
Python加密与解密模块hashlib与hmac
2022/06/05 Python