iPhone・iPadをきっかけに、Apple製品への関心が高まり、パソコンもMacを使う人が随分増えましたね。私もその一人で、今までWindowsメインだったのが、気がつけば家中Apple製品にあふれています。
ただ、iPhoneやMacから送信したメールが、先方で文字化けすることがたまにあります。文字コードの問題なのですが、今日も突然そんなことを思い出し、以前制作したWebサイトのお問い合わせフォームからのメールを、Mac OS X 10.9.1 Maverics のMailで受信したらどうなるか、気になってテスト送信してみました。
すると、案の定。受信したメールの本文が文字化けしています。
しかし、Webブラウザや、Gmail、iPhoneアプリ「nPOP」で見てみると、正常に表示されています。
Mac OS X 10.9.1 Maverics のMailで受信したメールの本文だけが文字化けしている状態ですね。
そこで、PHPフォームの記述を以下のように変更しました。
(旧)
mb_language("ja"); $from = mb_convert_kana($_POST{mail},"KVrna"); $to = "●●●@●●●●●●"; $subject = "ホームページからお問い合わせがありました"; $subject = '=?ISO-2022-JP?B?' . base64_encode(mb_convert_encoding($subject, 'ISO-2022-JP', 'AUTO')) . '?='; $message = stripslashes($message); mail($to,$subject,$message,"From:$from");
↓↓↓
(新)
mb_language("ja"); $from = mb_convert_kana($_POST{mail},"KVrna"); $to = "●●●@●●●●●●"; $subject = "ホームページからお問い合わせがありました"; $subject = '=?ISO-2022-JP?B?' . base64_encode(mb_convert_encoding($subject, 'ISO-2022-JP', 'AUTO')) . '?='; $message = stripslashes($message); $message = mb_convert_encoding($message,"JIS","UTF-8"); mail($to,$subject,$message,"From:$from");
また、metaタグの文字コードもあわせておきます。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
これで、MacのMailでも文字化けせずに、メールを受信できるようになりました。
「初心者が自分で更新できる最短ホームページテンプレート」を使っているかた、お問い合わせフォーム、PHPメールフォームにお困りのかたはぜひご参考ください。