【问题标题】:Using PHP mail - setting correct MIME type使用 PHP 邮件 - 设置正确的 MIME 类型
【发布时间】:2011-04-18 18:00:26
【问题描述】:

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

如果我如下注释掉 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));

【问题讨论】:

标签: php html email header mime


【解决方案1】:

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

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

检查一下: http://framework.zend.com/manual/en/zend.mail.html-mails.html

【讨论】:

  • 这实际上是在 Joomla 中,所以它在 J​​oomla 中使用邮件 - 仍然是 php 邮件,但在他们的框架内,所以不值得添加其他东西。
  • 为什么人们对 5 岁的 cmets 投反对票?!那时采埃孚是一个不错的选择。 5 年了,没那么多。
【解决方案2】:

确保将 \r\n 括在双引号中(而不是单引号!),以便 PHP 可以将其转换为正确的换行代码

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

【讨论】:

  • 我已经这样做了(尽管 MIME 和 Content-Type 在不同的行上,但是当电子邮件通过时,我得到 Content-type: text/plain; charset=UTF-8 在顶部邮件正文。在标头中正确设置了 MIME 类型。
  • \n" . "From:发件人 \n" . "MIME-Version: 1.0\n" . "Content-type: text/plain; charset=iso-8859-1"); ?>
  • 关于高级PHP邮件的非常系统的教程可以在articles.sitepoint.com/print/advanced-email-php找到
  • 我查看了同一篇站点点文章并得到: $headers = "MIME-Version: 1.0\n" 。 “内容类型:文本/html;字符集=iso-8859-1”; - 就像你一样。谢谢
猜你喜欢
  • 2021-04-24
  • 2015-06-16
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 2013-01-20
  • 2012-06-12
相关资源
最近更新 更多