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中邮箱地址正则表达式实现与详解
Apr 24 PHP
php在线代理转向代码
May 05 PHP
解决php接收shell返回的结果中文乱码问题
Jan 23 PHP
php解决约瑟夫环示例
Apr 09 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
php项目中百度 UEditor 简单安装调试和调用
Jul 15 PHP
Zend Framework实现将session存储在memcache中的方法
Mar 22 PHP
php根据数据id自动生成编号的实现方法
Oct 16 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
php实现websocket实时消息推送
Mar 30 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 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获取数组最后一个值的2种方法
2015/01/21 PHP
php导出生成word的方法
2015/12/25 PHP
JavaScript中把数字转换为字符串的程序代码
2013/06/19 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
python字典get()方法用法分析
2015/04/17 Python
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
Python实现的文本对比报告生成工具示例
2018/05/22 Python
PyQt Qt Designer工具的布局管理详解
2019/08/07 Python
python scipy卷积运算的实现方法
2019/09/16 Python
使用npy转image图像并保存的实例
2020/07/01 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
年级组长自我鉴定
2014/02/22 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
详解Vue的options
2021/05/15 Vue.js
sql中mod()函数取余数的用法
2021/05/29 SQL Server