Письма в формате UTF-8 для Mac Mail и Gmail - PullRequest
0 голосов
/ 03 апреля 2010

Я использую Pear mail_mime для отправки электронных писем в формате HTML, и сначала символы UTF-8 были испорчены в Gmail, но не в Mac Mail. Я обнаружил, что мне нужно добавить параметры в функцию get (), чтобы исправить набор символов, используемый в части HTML сообщения MIME. Это было по умолчанию 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";

1 Ответ

0 голосов
/ 25 сентября 2015

Включите тип контента и carset в ваш массив заголовков, что-то вроде следующего должно работать, но я не проверял это.

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