【问题标题】:UTF-8 emails to Mac Mail and GmailUTF-8 电子邮件到 Mac Mail 和 Gmail
【发布时间】:2011-02-04 01:17:20
【问题描述】:

我正在使用 Pear mail_mime 发送 HTML 电子邮件,首先 UTF-8 字符在 Gmail 中被弄乱了,但在 Mac Mail 中没有。我发现我需要向 get() 函数添加参数以更正 MIME 消息的 HTML 部分中使用的字符集。它默认为 ISO。

所以,我已经纠正了这个问题,电子邮件来源看起来正确,Gmail 工作正常,但现在莫名其妙地 Mac Mail 出现了问题,尽管它之前使用错误的声明字符集工作。我尝试了很多不同的方法,包括返回错误的字符集,但 Mac Mail 仍然无法正确呈现邮件。

是否有人对可能导致此问题的原因有任何想法?

代码如下,HTML 设置在此之前:

$params["host"] = "xxx";
$params["auth"] = true;
$params["username"] = "xxx";
$params["password"] = "xxx";
$params["html_charset"] = "utf-8";
$params["head_charset"] = "utf-8";
$params["text_charset"] = "utf-8";

$text = 'Text version of email';
$crlf = "\n";

$hdrs = array(
        'From'    => 'xxx',
        'Subject' => 'xxx'
        );

$mime = new Mail_mime($crlf);

$mime->setTXTBody($text);
$mime->setHTMLBody($html);

$body = $mime->get($params);
$hdrs = $mime->headers($hdrs);

$mail =& Mail::factory('smtp', $params);
$send = $mail->send($to, $hdrs, $body);
if (PEAR::isError($send)) { print($send->getMessage());} else echo "Mail sent to: $to";

【问题讨论】:

  • 您能举例说明这样生成的电子邮件标题吗?角色长什么样?
  • 您的邮件文本和 html 是否有效 utf8?

标签: php email utf-8 pear html-email


【解决方案1】:

在你的 headers 数组中包含内容类型和 carset,类似下面的东西应该可以工作,但我还没有测试过。

$hdrs = array(
    'From'    => 'xxx',
    'Subject' => 'xxx',
    'Content-Type' => 'text/html',
    'charset' => 'UTF-8',
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多