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 相关文章推荐
BBS(php &amp; mysql)完整版(一)
Oct 09 PHP
php 不同编码下的字符串长度区分
Sep 26 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
解析:使用php mongodb扩展时 需要注意的事项
Jun 18 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
php延迟静态绑定实例分析
Feb 08 PHP
PHP之正则表达式捕获组与非捕获组(详解)
Jul 29 PHP
详解PHP编码转换函数应用技巧
Oct 22 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
ThinkPHP实现附件上传功能
Apr 27 PHP
Laravel关系模型指定条件查询方法
Oct 10 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
微信小程序以ssm做后台开发的实现示例
2020/04/08 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
Python松散正则表达式用法分析
2016/04/29 Python
python实现定时发送qq消息
2019/01/18 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
params有什么用
2016/03/01 面试题
大学毕业登记表自我鉴定
2013/10/09 职场文书
会计岗位职责
2013/11/08 职场文书
高中语文教学反思
2014/01/16 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python