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- >主题=$主题;
$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 。 “内容类型:”。 $mimetype 。 "; 名称="$文件名";n";
$out = $out 。 “内容传输编码:base64n”;
$out = $out 。 “内容处置:附件;文件名=”$downfilename“nn”;
$out = $out 。 $编码。 “n”;
$out = $out 。 “——”。 $this->mime_boundary 。 “——”。 “n”;
返回$out;
}
函数encode_file($sourcefile) {
if (is_read($sourcefile)) {
$fd = fopen($sourcefile, "r");
$contents = fread($fd, filesize($sourcefile));
$encoded = chunk_split(base64_encode($contents));
fclose($fd);
}
返回$编码;
}
function sendfile() {
$headers = $this->smtp_headers . $this->mime_headers;
$message = $this->text_body 。 $this->text_encoded;
邮件($this->addr_to,$this->subject,$message,$headers);
}
function write_body($msgtext) {
$out = "--" . $this->mime_boundary 。 “n”;
$out = $out 。 “内容类型:文本/纯文本;字符集=“us-ascii”nn”;
$out = $out 。 $msgtext . “n”;
返回$out;
}
function write_mimeheaders($filename, $mime_filename) {
if ($mime_filename) $filename = $mime_filename;
$out = "MIME 版本: 1.0n";
$out = $out 。 “内容类型:多部分/混合;”;
$out = $out 。 "boundary="$this->mime_boundary"n";
$out = $out 。 “内容传输编码:7BITn”;
$out = $out 。 “X-附件:$文件名;nn”;
返回$out;
}
function write_smtpheaders($addr_from) {
$out = "发件人:$addr_fromn";
$out = $out 。 “回复:$addr_fromn”;
$out = $out 。 “X-Mailer:PHP3n”;
$out = $out 。 “X-发送者:$addr_fromn”;
返回$out;
}
}
/* 用法 - 例如:mimetype 为 "image/gif"
$mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename ,$mimetype);
$mailfile->sendfile();
$subject -- 主题
$sendto -- 收信人地址
$replyto -- 回复地址
$message -- 信件内容
$filename -- 附件文件名
$downfilename -- 下载的文件名
$mimetype -- mime 类型
*/
?>;
演示
require_once('emailclass.php');
//发送邮件
//主题
$subject = "测试发送电子邮件";
//食谱
$sendto = 'abc@163.com';
//发件人
$replyto = 'cdf@163.com';
//内容
$message = "测试发送邮件内容";
//附件
$filename = 'test.jpg';
//附件类别
$mimetype = "image/jpeg";
$mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename,$excelname,$mimetype);
$mailfile->sendfile();
?>