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 相关文章推荐
mysql 字段类型说明
Apr 27 PHP
php zend 相对路径问题
Jan 12 PHP
PHP下escape解码函数的实现方法
Aug 08 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
判断PHP数组是否为空的代码
Sep 08 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
php获取通过http协议post提交过来xml数据及解析xml
Dec 16 PHP
ThinkPHP实现一键清除缓存方法
Jun 26 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
php array_slice 取出数组中的一段序列实例
Nov 04 PHP
PHP环形链表实现方法示例
Sep 15 PHP
php给数组赋值的实例方法
Sep 26 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
用libtemplate实现静态网页生成
2006/10/09 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
重命名批处理python脚本
2013/04/05 Python
Python实现测试磁盘性能的方法
2015/03/12 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
python如何实现图片压缩
2020/09/11 Python
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
bonprix荷兰网上商店:便宜的服装、鞋子和家居用品
2020/07/04 全球购物
考试退步检讨书
2014/01/15 职场文书
总经理司机岗位职责
2014/02/06 职场文书
安全标兵事迹材料
2014/08/17 职场文书
2015年企业新年寄语
2014/12/08 职场文书
运动会宣传语
2015/07/13 职场文书
五年级作文之成长
2019/09/16 职场文书
作文之亲情600字
2019/09/23 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python