zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

实例PHP 实现 发送 邮件 附件
2023-06-13 09:15:46 时间

本文实例讲述了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";

//附件??e
$mimetype="image/jpeg";

$mailfile=newCMailFile($subject,$sendto,$replyto,$message,$filename,$excelname,$mimetype);
$mailfile->sendfile();
?>

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