php发送带附件邮件的实现代码

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

<?

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);

} www.jbxue.com

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类型

*/

?>

<?php

require_once('emailclass.php');

//发送邮件

//主題

$subject = "test send email";

//收件人

$sendto = 'abc@163.com';

//發件人

$replyto = 'cdf@163.com';

//內容 www.jbxue.com

$message = "test send email content";

//附件

$filename = 'test.jpg';

//附件類別

$mimetype = "image/jpeg";

$mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename,$Excelname,$mimetype);

$mailfile->sendfile();

?>

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航