携帯宛のメール文字化け
24時間365日戦える営業マンを作りあげます。ホームページコンサルタントの山田直毅(なおたか)です。
サーバから携帯宛にメールを送信する時に文字化けに悩むことが多い。文字化けは文字コードの変換によって引き起こされる問題の1つで、携帯で(根強い人気を誇る)半角カナが本文に含まれたりすると意外と面倒なのです。
日本ではメールの文字コードとしてISO-2022-JPが一般的。ISO-2022-JPとは、JIS規格によって規定されている日本語の文字コードの一つ。しかしこの文字コードが半角カナを扱えない。最近ではgmailからUTF-8で送信されてくることもあるけれども、正直なところ、UTF-8でメールを送るのは止めてほしい。
携帯メールの基本文字コードはShift_JIS。乱暴な話だけれども、Shift_JIS(SJIS:エスジス)であれば良い。
あとはメールのヘッダーをひと工夫。この2行がとっても大事です。
Content-Type: text/plain;charset=Shift_JIS
Content-Transfer-Encoding: 8bit
動作確認はしていませんが、サンプルコード
<?php // 宛先設定 $to = 'xxxxxxxx@xxxxx.xxx'; // 件名設定 $subject = 'テスト送信メール'; $subject = '=?shift_jis?B?' . base64_encode($subject) . "?="; // 本文設定 $body = 'テスト'; // ヘッダー生成 $header = "From: yyyyyyyy@xxxxx.xxx\r\n"; $header .= "Content-Type: text/plain;charset=Shift_JIS\r\n"; $header .= "Content-Transfer-Encoding: 8bit\r\n"; // オプション設定 $option = '-f yyyyyyyy@xxxxx.xxx'; // メール送信 $result = @mail($to, $subject, $body, $header, $option); // 送信結果判定 if (!$result) { //// エラー処理 //// } ?>