Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 发送到Mac Mail和Gmail的UTF-8电子邮件_Php_Email_Utf 8_Pear_Html Email - Fatal编程技术网

Php 发送到Mac Mail和Gmail的UTF-8电子邮件

Php 发送到Mac Mail和Gmail的UTF-8电子邮件,php,email,utf-8,pear,html-email,Php,Email,Utf 8,Pear,Html Email,我使用Pear mail_mime发送HTML电子邮件,首先UTF-8字符在Gmail中被弄乱了,但在Mac mail中没有。我发现我需要向get()函数添加参数,以更正MIME消息的HTML部分中使用的字符集。它默认为ISO 所以,我已经纠正了这个问题,电子邮件源看起来是正确的,Gmail工作正常,但现在令人费解的是,Mac Mail出现了一个问题,尽管它以前使用了错误的声明字符集。我尝试了很多不同的方法,包括返回错误的字符集,但Mac Mail仍然无法正确呈现消息 有人知道是什么导致了这一切

我使用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";

在headers数组中包含contenttype和carset,类似于以下内容应该可以工作,但我还没有测试过

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

您能举一个这样生成的电子邮件标题的例子吗?字符看起来像什么?您的邮件文本和html是否有效utf8?