• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:windowsXP、XAMPPでメーラーMercuryを使用してローカ)

WindowsXP、XAMPPでメーラーMercuryを使用してローカルでメールしたとき受信メールの文字化け問題

このQ&Aのポイント
  • WindowsXP、XAMPPでメーラーMercuryを使用してローカルでメールしたとき、受信メールのSubjectが文字化けする問題について解決方法を教えてください。
  • 質問者は、WindowsXPとXAMPPを使用してローカルでメールを送信する際に、メールのSubjectが文字化けしてしまう問題に遭遇しています。具体的な内容としては、Subjectが文字化けせずに表示されるようにするためのPHPコードとphp.iniファイルの設定方法を教えてください。
  • WindowsXPとXAMPPを使用してローカルでメールを送信する場合において、受信メールのSubjectが文字化けしてしまう問題が発生しています。この問題の解決方法としては、PHPのコードを使用して文字コードの変換やヘッダーの処理を行うことが挙げられます。具体的には、mb_convert_encoding関数を使用してメールの本文とSubjectをiso-2022-jpの文字コードに変換し、mb_encode_mimeheader関数を使用してSubjectをエンコードした後、sendmail関数を使用してメールを送信する方法があります。また、php.iniファイルの設定についても、mbstring関連の設定を追加する必要があります。

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

  • ベストアンサー
回答No.1

mb_encode_mimeheader関数は、PHPのビルド時のデフォルトの文字コードから、第二引数で指定した文字コード(ISO-2022-JP)に変換をした上で、mimeヘッダにエンコードをしてくれる関数です。 つまり、この関数を叩く前に、UTF-8の文字コードをISO-2022-JPに変換してはダメです。 <?php //こいつが不要 $subject = mb_convert_encoding($subject, 'iso-2022-jp', 'UTF-8'); ?> php.iniの設定で、mb_internal_encodingの値はUTF-8に成っているので今回必要ないですが、 レンタルサーバとか、他の環境でiniを編集出来ない場合は、スクリプトの頭にでも <?php mb_internal_encoding('UTF-8'); ?> とでもしてやってください。これが確実です。

basi999
質問者

お礼

ありがとうございます。