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程序设计的学习有一定的借鉴价值。