私は Pear mail_mime を使用して HTML メールを送信していますが、最初に UTF-8 文字が Gmail でめちゃくちゃになりましたが、Mac メールではそうではありませんでした。MIME メッセージの HTML 部分で使用される文字セットを修正するには、get() 関数にパラメーターを追加する必要があることがわかりました。デフォルトで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";