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 相关文章推荐
Windows下的PHP5.0详解
Nov 18 PHP
input file获得文件根目录简单实现
Apr 26 PHP
解析php DOMElement 操作xml 文档的实现代码
May 10 PHP
深入分析php之面向对象
May 15 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
laradock环境docker-compose操作详解
Jul 29 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 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.MVC的模板标签系统(三)
2006/09/05 PHP
PHP4中实现动态代理
2006/10/09 PHP
php Memcache 中实现消息队列
2009/11/24 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
jquery密码强度校验
2015/12/02 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
2017/07/19 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
python正则表达式re模块详细介绍
2014/05/29 Python
python实现的简单猜数字游戏
2015/04/04 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
高中校园广播稿
2014/01/11 职场文书
《美丽的彩虹》教学反思
2014/02/25 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
详解Python类和对象内容
2021/06/22 Python
docker 制作mysql镜像并自动安装
2022/05/20 Servers