- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpのmb_send_mailで携帯のみ文字化け)
PHPのmb_send_mailで携帯のみ文字化け
このQ&Aのポイント
- PHPのmb_send_mail関数を使ってメールを送信していますが、携帯のみで文字化けが発生します。
- 使用しているメールサーバーはGoogleAppsで、PHPのバージョンは5.1.6です。
- 日本語と内部文字エンコードはUTF-8で指定されており、return_path設定も行われています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>mb_language('ja'); >mb_internal_encoding('UTF-8'); これが設定されているのであればmb_encode_mimeheaderは、utf-8→JISを行います。なので自前での変換(mb_convert_encoding)は入れない方が無難です。 というか、$subjectはfromに入れる(自前でJISにしている)と同時にmb_send_mailでもsubjectとして渡しています。なおさらutf-8のままでないとマズイです。 (e.g.) mb_language('ja'); mb_internal_encoding('UTF-8'); $header = ""; $header .= "From: " . mb_encode_mimeheader($subject) . "<{$from}>"; $message = str_replace("\r", "", $message); $parameter = "-f hoge@example.co.jp"; $res = mb_send_mail($to, $subject, $message, $header, $parameter); なお「文字化け」は、どのメーラでどうなるといったことを基準にすると間違いの元です(メーラは自動補正して修正してくれるものが多いので)。popサーバから生のメールデータをダウンロードして中身を確認すべきです。
お礼
お返事が遅れてしまい大変申し訳ございません。。。 とても勉強になりました。 そのまま使わせていただいたところ上手くいきました。 ありがとうございます。大変助かりました。