1. 云栖社区>
  2. PHP教程>
  3. 正文

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

作者:用户 来源:互联网 时间:2017-12-01 12:48:05

邮件实例附件

php实现的发送带附件邮件类实例 - 摘要: 本文讲的是php实现的发送带附件邮件类实例,本文实例讲述了php实现的发送带附件邮件类的方法,是一个非常实用的功能。分享给大家供大家参考。具体方法如下:emailclass.php类文件如下:<? class CMailFile { var $subject; v

本文实例讲述了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 = '[email protected]';      //發件人   $replyto = '[email protected]';      //內容   $message = "test send email content";      //附件   $filename = 'test.jpg';      //附件類別   $mimetype = "image/jpeg";    $mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename,$excelname,$mimetype);    $mailfile->sendfile(); ?>


相信本文所述对大家php程序设计的学习有一定的借鉴价值。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索邮件 , 实例 附件 ,以便于您获取更多的相关知识。