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 相关文章推荐
PHP高级OOP技术演示
Aug 27 PHP
PHP 抓取网页图片并且另存为的实现代码
Mar 24 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
PHP中的命名空间详细介绍
Jul 02 PHP
PHP实现移除数组中为空或为某值元素的方法
Jan 07 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
PHP封装的mysqli数据库操作类示例
Feb 16 PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 PHP
phpstorm激活码2020附使用详细教程
Sep 25 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代码
2008/04/09 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
向fckeditor编辑器插入指定代码的方法
2007/05/25 Javascript
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
python计算n的阶乘的方法代码
2019/10/25 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
草莓网化妆品澳大利亚站:Strawberrynet AU
2017/12/18 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
如何写好升职自荐信
2014/01/06 职场文书
人事专员岗位职责范本
2014/03/04 职场文书
前台文员职责范本
2014/03/07 职场文书
规划编制实施方案
2014/03/15 职场文书
教育见习报告范文
2014/11/03 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis
关于nginx 实现jira反向代理的问题
2021/09/25 Servers
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server