ContactForm日本語化

公式フォーラムとは違う方法ですが、PHPのMail関数で日本語が文字化けするのを回避する手法を適用してみました。

MODxの管理画面に入ります。
1.[リソース]-[リソース管理]-[スニペット]を選択します。
2.[ContactForm]をクリックします。
3.[スニペット コード (php)]の中の以下の行の間に挿入します。

$body = "Name: $from\nEmail: $from_email\nMessage:\n\n" . $message;
// huck of Japanese encord --------------------------
// 元のエンコーディングを保存
$orgEncoding = mb_internal_encoding();
mb_language("Ja");
mb_internal_encoding("UTF-8");
$headers = mb_encode_mimeheader($headers, "JIS", "B");
$subject = mb_encode_mimeheader($subject, "JIS", "B");
$body = mb_convert_encoding($body, "JIS", "UTF-8");
// 保存しておいたエンコーディングに戻す
mb_internal_encoding($orgEncoding);
// end huck -----------------------------------------

        if (mail($to, $subject, $body, $headers)) {

4.上部の「保存」をクリックします。