栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

发送带有附件的PHP HTML邮件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

发送带有附件的PHP HTML邮件

要发送带有附件的电子邮件,我们需要使用multipart / mixed
MIME类型,该类型指定混合类型将包含在电子邮件中。此外,我们想使用多部分/替代MIME类型来发送电子邮件的纯文本和HTML版本,请看示例:

<?php //define the receiver of the email $to = 'youraddress@example.com'; //define the subject of the email $subject = 'Test email with attachment'; //create a boundary string. It must be unique //so we use the MD5 algorithm to generate a random hash $random_hash = md5(date('r', time())); //define the headers we want passed. Note that they are separated with rn $headers = "From: webmaster@example.comrnReply-To: webmaster@example.com"; //add boundary string and mime type specification $headers .= "rnContent-Type: multipart/mixed; boundary="PHP-mixed-".$random_hash."""; //read the atachment file contents into a string,//enpre it with MIME base64,//and split it into smaller chunks$attachment = chunk_split(base64_enpre(file_get_contents('attachment.zip'))); //define the body of the message. ob_start(); //Turn on output buffering ?> --PHP-mixed-<?php echo $random_hash; ?>  Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"--PHP-alt-<?php echo $random_hash; ?>  Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bitHello World!!! This is simple text email message.--PHP-alt-<?php echo $random_hash; ?>  Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: 7bit<h2>Hello World!</h2> <p>This is something with <b>HTML</b> formatting.</p>--PHP-alt-<?php echo $random_hash; ?>----PHP-mixed-<?php echo $random_hash; ?>  Content-Type: application/zip; name="attachment.zip"  Content-Transfer-Encoding: base64  Content-Disposition: attachment<?php echo $attachment; ?> --PHP-mixed-<?php echo $random_hash; ?>--<?php //copy current buffer contents into $message variable and delete current output buffer $message = ob_get_clean(); //send the email $mail_sent = @mail( $to, $subject, $message, $headers ); //if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" echo $mail_sent ? "Mail sent" : "Mail failed"; ?>

如您所见,发送带有附件的电子邮件很容易完成。在前面的示例中,我们具有multipart / mixed MIME类型,在其中,我们具有multipart /
alternative
MIME类型,用于指定电子邮件的两个版本。为了包括消息的附件,我们将指定文件中的数据读取为字符串,使用base64对其进行编码,将其拆分成较小的块以确保其与MIME规范匹配,然后将其作为附件包含在内。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/615418.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号