Home  >  Article  >  Backend Development  >  PHP implementation code for sending emails with attachments_PHP tutorial

PHP implementation code for sending emails with attachments_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:39:401074browse

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>?>

Articles you may be interested in:
php class for sending emails with attachments
php socket uses smtp to send emails with attachments
Example of PHPMailer sending emails with attachments

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/729844.htmlTechArticle1, emailclass.php ? = "--============== ====_846811060==_" CMailFile( , , , , , , = "application/octet-stream", = -subject = -addr_to = -smtp_headers = -write_smtpheaders( -text_bo...
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