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 相关文章推荐
截获网站title标签之家内容的例子
Oct 09 PHP
php学习 字符串课件
Jun 15 PHP
php 设计模式之 工厂模式
Dec 19 PHP
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
joomla实现注册用户添加新字段的方法
May 05 PHP
PHP实现链式操作的原理详解
Sep 16 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
php 获取xml接口数据的处理方法
May 31 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
PHP 对象继承原理与简单用法示例
Apr 21 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 smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
JavaScript基本类型值-Number类型
2017/02/24 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
将 vue 生成的 js 上传到七牛的实例
2017/07/28 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
JS实现的RC4加密算法示例
2018/08/16 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
Python计时相关操作详解【time,datetime】
2017/05/26 Python
python实现可逆简单的加密算法
2019/03/22 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
Python和Anaconda和Pycharm安装教程图文详解
2020/02/04 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
python简单实现9宫格图片实例
2020/09/03 Python
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
运动会加油稿100字
2014/09/19 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
出纳试用期自我评价
2015/03/10 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
科技活动总结范文
2015/05/11 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
JavaScript流程控制(分支)
2021/12/06 Javascript