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 相关文章推荐
一个简单的自动发送邮件系统(一)
Oct 09 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
生成静态页面的php函数,php爱好者站推荐
Mar 19 PHP
什么是MVC,好东西啊
May 03 PHP
发布一个迷你php+AJAX聊天程序[聊天室]提供下载
Jul 21 PHP
php小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
php使用number_format函数截取小数的方法分析
May 27 PHP
PHP微信红包生成代码分享
Oct 06 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
PHP实现的装箱算法示例
Jun 23 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
May 14 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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
Python 错误和异常小结
2013/10/09 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python动态视频下载器的实现方法
2019/09/16 Python
pygame实现成语填空游戏
2019/10/29 Python
python实现飞行棋游戏
2020/02/05 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
Pat McGrath Labs官网:世界上最有影响力的化妆师推出的彩妆品牌
2018/01/07 全球购物
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
计算机专业毕业生推荐信
2013/11/25 职场文书
爱情寄语大全
2014/04/09 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
个人合作协议范本
2015/08/06 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
《伯牙绝弦》教学反思
2016/02/16 职场文书