php实现的发送带附件邮件类实例
本文实例讲述了php实现的发送带附件邮件类的方法,是一个非常实用的功能。分享给大家供大家参考。具体方法如下:
emailclass.php类文件如下:
<?
classCMailFile{
var$subject;
var$addr_to;
var$text_body;
var$text_encoded;
var$mime_headers;
var$mime_boundary="--==================_846811060==_";
var$smtp_headers;
functionCMailFile($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);
}
functionattach_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;
}
functionencode_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;
}
functionsendfile(){
$headers=$this->smtp_headers.$this->mime_headers;
$message=$this->text_body.$this->text_encoded;
mail($this->addr_to,$this->subject,$message,$headers);
}
functionwrite_body($msgtext){
$out="--".$this->mime_boundary."\n";
$out=$out."Content-Type:text/plain;charset=\"us-ascii\"\n\n";
$out=$out.$msgtext."\n";
return$out;
}
functionwrite_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;
}
functionwrite_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=newCMailFile($subject,$sendto,$replyto,$message,$filename,$mimetype);
$mailfile->sendfile();
$subject--主题
$sendto--收信人地址
$replyto--回复地址
$message--信件内容
$filename--附件文件名
$downfilename--下載的文件名
$mimetype--mime类型
*/
?>
Demo示例文件如下:
<?php
require_once('emailclass.php');
//发送邮件
//主題
$subject="testsendemail";
//收件人
$sendto='abc@163.com';
//發件人
$replyto='cdf@163.com';
//內容
$message="testsendemailcontent";
//附件
$filename='test.jpg';
//附件類別
$mimetype="image/jpeg";
$mailfile=newCMailFile($subject,$sendto,$replyto,$message,$filename,$excelname,$mimetype);
$mailfile->sendfile();
?>
相信本文所述对大家php程序设计的学习有一定的借鉴价值。