2010-09-29 89 views
3

我遇到了一个发送电子邮件确认的PHP脚本的问题。当在Thunderbird中接收到电子邮件时,标题出现在\ r \ n目录中,MIME类型也包含内容类型信息。因此,电子邮件呈现为纯文本而不是HTML。使用PHP邮件 - 设置正确的MIME类型

如果我注释掉MIME类型如下,则电子邮件呈现正确。首先,这样做是否存在重大问题?其次,可能会造成这种情况?

if($apptpro_config->html_email == "Yes"){ 
     //$headers .= 'MIME-Version:1.0\r\n'; 
     $headers .= 'Content-type:text/html; charset=ISO-8859-1\r\n'; 
    } 



    return(mail($to, $subject, $message, $headers)); 
+0

杜佩http://stackoverflow.com/questions/3644081/what-is-the-format-for-e-mail-headers-that-display-a-name的-rather超的的电子邮件。 – 2013-03-26 14:59:12

回答

10

请务必附上\ r \ n在双引号(不是单引号!),使PHP可以翻译成正确的换行代码

$header = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/plain; charset=UTF-8' . "\r\n";

+0

我已经完成了这个工作(尽管MIME和Content-Type在单独的行中,但是当电子邮件通过时,我在电子邮件正文的顶部获得了Content-type:text/plain; charset = UTF-8。类型设置正确在标头中 – Jeepstone 2010-09-29 11:03:35

+0

删除\ r并仅保留\ n – 2010-09-29 11:58:28

+0

<?php 邮件(在'您的邮件在这里', '收件人:<收件人< “ ”内容类型:text/plain; charset =“ ”来源:发件人<[email protected]> \ n“ iso-8859-1“); ?> – 2010-09-29 12:01:10

0

我知道这是不是你正在寻找的具体答案,但你有没有尝试过Zend Mail?

它简化了设置HTML电子邮件的过程,并且您可以将其配置为发送纯文本版本,如果HTML在客户端被禁用。

检查出来: http://framework.zend.com/manual/en/zend.mail.html-mails.html

+0

这实际上在Joomla内部,所以它使用Joomla内的邮件 - 仍然是PHP邮件,但在他们的框架内,所以不值得添加其他内容。 – Jeepstone 2010-09-29 11:01:25

+0

为什么人们对5岁以下的评论投票?当时采埃孚是一个很好的选择。 5年过去了,没那么多。 – Adam 2015-10-19 15:18:11