Home  >  Article  >  php教程  >  php 发送带附件邮件的实现代码

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

WBOY
WBOYOriginal
2016-06-13 09:43:54759browse

1,emailclass.php

<? 
<span class</span><span  CMailFile {

</span><span var</span> <span $subject</span><span ; 
</span><span var</span> <span $addr_to</span><span ; 
</span><span var</span> <span $text_body</span><span ; 
</span><span var</span> <span $text_encoded</span><span ; 
</span><span var</span> <span $mime_headers</span><span ; 
</span><span var</span> <span $mime_boundary</span> = "--==================_846811060==_"<span ; 
</span><span var</span> <span $smtp_headers</span><span ;

</span><span function</span> CMailFile(<span $subject</span>,<span $to</span>,<span $from</span>,<span $msg</span>,<span $filename</span>,<span $downfilename</span>,<span $mimetype</span> = "application/octet-stream",<span $mime_filename</span> = <span false</span><span ) { 
</span><span $this</span>->subject = <span $subject</span><span ; 
</span><span $this</span>->addr_to = <span $to</span><span ; 
</span><span $this</span>->smtp_headers = <span $this</span>->write_smtpheaders(<span $from</span><span ); 
</span><span $this</span>->text_body = <span $this</span>->write_body(<span $msg</span><span ); 
</span><span $this</span>->text_encoded = <span $this</span>->attach_file(<span $filename</span>,<span $downfilename</span>,<span $mimetype</span>,<span $mime_filename</span><span ); 
</span><span $this</span>->mime_headers = <span $this</span>->write_mimeheaders(<span $filename</span>, <span $mime_filename</span><span ); 
}

</span><span function</span> attach_file(<span $filename</span>,<span $downfilename</span>,<span $mimetype</span>,<span $mime_filename</span><span ) { 
</span><span $encoded</span> = <span $this</span>->encode_file(<span $filename</span><span ); 
</span><span if</span> (<span $mime_filename</span>) <span $filename</span> = <span $mime_filename</span><span ; 
</span><span $out</span> = "--" . <span $this</span>->mime_boundary . "\n"<span ; 
</span><span $out</span> = <span $out</span> . "Content-type: " . <span $mimetype</span> . "; name=\"<span $filename</span>\";\n"<span ; 
</span><span $out</span> = <span $out</span> . "Content-Transfer-Encoding: base64\n"<span ; 
</span><span $out</span> = <span $out</span> . "Content-disposition: attachment; filename=\"<span $downfilename</span>\"\n\n"<span ; 
</span><span $out</span> = <span $out</span> . <span $encoded</span> . "\n"<span ; 
</span><span $out</span> = <span $out</span> . "--" . <span $this</span>->mime_boundary . "--" . "\n"<span ; 
</span><span return</span> <span $out</span><span ; 
}

</span><span function</span> encode_file(<span $sourcefile</span><span ) { 
</span><span if</span> (<span is_readable</span>(<span $sourcefile</span><span )) { 
</span><span $fd</span> = <span fopen</span>(<span $sourcefile</span>, "r"<span ); 
</span><span $contents</span> = <span fread</span>(<span $fd</span>, <span filesize</span>(<span $sourcefile</span><span )); 
</span><span $encoded</span> = <span chunk_split</span>(<span base64_encode</span>(<span $contents</span><span )); 
</span><span fclose</span>(<span $fd</span><span ); 
} 
</span><span return</span> <span $encoded</span><span ; 
}

</span><span function</span><span  sendfile() { 
</span><span $headers</span> = <span $this</span>->smtp_headers . <span $this</span>-><span mime_headers; 
</span><span $message</span> = <span $this</span>->text_body . <span $this</span>-><span text_encoded; 
</span><span mail</span>(<span $this</span>->addr_to,<span $this</span>->subject,<span $message</span>,<span $headers</span><span ); 
} www</span>.jbxue.<span com

</span><span function</span> write_body(<span $msgtext</span><span ) { 
</span><span $out</span> = "--" . <span $this</span>->mime_boundary . "\n"<span ; 
</span><span $out</span> = <span $out</span> . "Content-Type: text/plain; charset=\"us-ascii\"\n\n"<span ; 
</span><span $out</span> = <span $out</span> . <span $msgtext</span> . "\n"<span ; 
</span><span return</span> <span $out</span><span ; 
}

</span><span function</span> write_mimeheaders(<span $filename</span>, <span $mime_filename</span><span ) { 
</span><span if</span> (<span $mime_filename</span>) <span $filename</span> = <span $mime_filename</span><span ; 
</span><span $out</span> = "MIME-version: 1.0\n"<span ; 
</span><span $out</span> = <span $out</span> . "Content-type: multipart/mixed; "<span ; 
</span><span $out</span> = <span $out</span> . "boundary=\"<span $this</span>->mime_boundary\"\n"<span ; 
</span><span $out</span> = <span $out</span> . "Content-transfer-encoding: 7BIT\n"<span ; 
</span><span $out</span> = <span $out</span> . "X-attachments: <span $filename</span>;\n\n"<span ; 
</span><span return</span> <span $out</span><span ; 
}

</span><span function</span> write_smtpheaders(<span $addr_from</span><span ) { 
</span><span $out</span> = "From: <span $addr_from</span>\n"<span ; 
</span><span $out</span> = <span $out</span> . "Reply-To: <span $addr_from</span>\n"<span ; 
</span><span $out</span> = <span $out</span> . "X-Mailer: PHP3\n"<span ; 
</span><span $out</span> = <span $out</span> . "X-Sender: <span $addr_from</span>\n"<span ; 
</span><span return</span> <span $out</span><span ; 
} 
}

</span><span /*</span><span 用法 - 例如:mimetype 为 "image/gif" 
$mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename,$mimetype); 
$mailfile->sendfile();

$subject -- 主题 
$sendto -- 收信人地址 
$replyto -- 回复地址 
$message -- 信件内容 
$filename -- 附件文件名 
$downfilename -- 下載的文件名 
$mimetype -- mime类型 
</span><span */</span> 
?>

<?<span php 
</span><span require_once</span>('emailclass.php'<span );

</span><span //</span><span 发送邮件

//主題 </span>
<span $subject</span> = "test send email"<span ;

</span><span //</span><span 收件人 </span>
<span $sendto</span> = 'abc@163.com'<span ;

</span><span //</span><span 發件人 </span>
<span $replyto</span> = 'cdf@163.com'<span ;

</span><span //</span><span 內容 www.jbxue.com</span>
<span $message</span> = "test send email content"<span ;

</span><span //</span><span 附件 </span>
<span $filename</span> = 'test.jpg'<span ;

</span><span //</span><span 附件類別 </span>
<span $mimetype</span> = "image/jpeg"<span ;

</span><span $mailfile</span> = <span new</span> CMailFile(<span $subject</span>,<span $sendto</span>,<span $replyto</span>,<span $message</span>,<span $filename</span>,<span $excelname</span>,<span $mimetype</span><span ); 
</span><span $mailfile</span>-><span sendfile(); 
</span>?>

您可能感兴趣的文章:
php 发送带附件邮件的类
php socket使用smtp发送带附件的邮件
PHPMailer发送带附件邮件的例子

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn