php实现的发送带附件邮件类实例


Posted in PHP onSeptember 22, 2014

本文实例讲述了php实现的发送带附件邮件类的方法,是一个非常实用的功能。分享给大家供大家参考。具体方法如下:

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下判断数组中是否存在相同的值array_unique
Mar 25 PHP
PHP多线程抓取网页实现代码
Jul 22 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
Jun 25 PHP
调整PHP的性能
Oct 30 PHP
php顺序查找和二分查找示例
Mar 27 PHP
php筛选不存在的图片资源
Apr 28 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
Oct 20 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 PHP
PHP实现AES256加密算法实例
Sep 22 #PHP
php生成QRcode实例
Sep 22 #PHP
php实现的Captcha验证码类实例
Sep 22 #PHP
php中unserialize返回false的解决方法
Sep 22 #PHP
php实现根据字符串生成对应数组的方法
Sep 22 #PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 #PHP
php中Y2K38的漏洞解决方法实例分析
Sep 22 #PHP
You might like
使用PHP获取汉字的拼音(全部与首字母)
2013/06/27 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
JavaScript 快捷键设置实现代码
2009/03/13 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
详解webpack 热更新优化
2018/09/13 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
用django设置session过期时间的方法解析
2019/08/05 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
进口业务员岗位职责
2014/04/06 职场文书
护士优质服务演讲稿
2014/08/26 职场文书
2014年库房工作总结
2014/11/26 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
2014会计年终工作总结
2014/12/20 职场文书
西游降魔篇观后感
2015/06/15 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
Go中的条件语句Switch示例详解
2021/08/23 Golang