• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メール送信での文字化け)

メール送信での文字化けとは?

このQ&Aのポイント
  • ホームページから入力ホームに記入してもらい、送信するとphpを使用してメールを送信するプログラムを書いていますが、メールを送信するとメールの内容に文字化けが発生してしまいます。
  • 入力ホームのページからutf-8で統一すれば文字化けなくメールを送信することができましたが、仕様の条件としてshift-jisにするとありますので、入力ホームはshift-jisにしてあります。
  • どうすればよいでしょうか?どうか教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

まず日本語のエンコードを気にするならmb_send_mail()は使わない方がいいですね エンコードの指定は多少面倒ですが自前でエンコードして mail()か、PEAR::Mailを利用するといいでしょう http://www.php.net/manual/ja/function.mail.php http://pear.php.net/manual/ja/package.mail.mail.php メール本文は7ビットJISに変換してから送るのが基本です その他のエンコードの場合、メールヘッダでContent-Transfer-Encodingを 指定してやると精度があがるとおもいますよ

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

ANo.2です。 >$messageのうち、全部が化けています。 ファイルに落としたときにはどうなっていますか?あるいは画面に表示させてブラウザのエンコードをShift_JISにして確認してもいいです。 $messageの中身がShift_JISで、マルチバイト系の設定 mb_language('ja'); mb_internal_encoding('SJIS'); をこれ以降変えていない(requireしたスクリプトでも触っていない)ということであれば、mb_send_mailの問題ですが、そもそも$messageの中身がShift_JISになっていないのであればmb_send_mail以前の問題です。 まずはそれを切り分けてください。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

基本的には mb_language('ja'); mb_internal_encoding('SJIS'); があるので、化ける可能性は低いハズですけどね(phpスクリプトは間違いなくShift_JISですよね)。$messageのうち、どの部分が化けていますか。それとも全部ですか。$messageの内容をファイルに書き出して「Shift_JIS」になっていることを確認してください。 #なお$message_adminの中身は推測できません。また$fromの内容は #転記するときに書き替えたんですよね(このままだとは思えないので)。

elkheart
質問者

補足

回答ありがとうございます。 phpスクリプトは間違いなくShift_JISになっています。 $messageのうち、全部が化けています。 fromの内容は転記するときに書き替えてます。 よろしくお願いいたします。

関連するQ&A

専門家に質問してみよう