php 发送带附件邮件示例


Posted in PHP onJanuary 23, 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); 
} 
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类型 
*/ 
?>

Demo
<?php 
require_once('emailclass.php'); //发送邮件 
//主? 
$subject = "test send email"; 
//收件人 
$sendto = 'abc@163.com'; 
//?件人 
$replyto = 'cdf@163.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循环输出数据库内容的代码
May 24 PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
Nov 30 PHP
PHP 5.3新特性命名空间规则解析及高级功能
Mar 11 PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 PHP
php验证手机号码
Nov 11 PHP
利用PHP如何统计Nginx日志的User Agent数据
Mar 06 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 PHP
PHP实现字母数字混合验证码功能
Jul 11 PHP
php文件包含的几种方式总结
Sep 19 PHP
关于laravel 子查询 &amp; join的使用
Oct 16 PHP
基于php+MySql实现学生信息管理系统实例
Aug 04 PHP
php 获取页面中指定内容的实现类
Jan 23 #PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 #PHP
php 字符串压缩方法比较示例
Jan 23 #PHP
php 生成短网址原理及代码
Jan 23 #PHP
解决php接收shell返回的结果中文乱码问题
Jan 23 #PHP
php弹出对话框实现重定向代码
Jan 23 #PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 #PHP
You might like
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
2018/03/05 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
python解析模块(ConfigParser)使用方法
2013/12/10 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
python实现用户管理系统
2018/01/10 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
会计专业推荐信
2013/10/29 职场文书
语文教研活动总结
2014/07/02 职场文书
考勤制度通知
2015/04/25 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
吴仁宝观后感
2015/06/09 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS