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 相关文章推荐
PHP设计聊天室步步通
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
php 操作符与控制结构
Mar 07 PHP
用php制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
Yii全局函数用法示例
Jan 22 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
PHP时间类完整代码实例
Feb 26 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 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
在Python程序中实现分布式进程的教程
2015/04/28 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
python实现逻辑回归的方法示例
2017/05/02 Python
python3学生名片管理v2.0版
2018/11/29 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
幼师专业求职推荐信
2013/11/08 职场文书
大家检讨书5000字
2014/02/03 职场文书
婚礼主持结束词
2014/03/13 职场文书
初三学生评语大全
2014/04/24 职场文书
租车协议书范本2014
2014/11/17 职场文书
结婚保证书
2015/01/16 职场文书
2015年公务员工作总结
2015/04/24 职场文书
六年级情感作文之500字
2019/10/23 职场文书