※ 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関連の設定を追加する必要があります。
windowsXP、XAMPPでメーラーMercuryを使用してローカ
windowsXP、XAMPPでメーラーMercuryを使用してローカルでメールしたとき受信メールの
SubjectがSubject: =?ISO-2022-JP?B?GyRCRnxLXDhsJTUlViU4JSclLyVIGyhC?=と文字化けします。
文字化けしないようにはどうすればいいのでしょうか。
下記内容がメールしたときのPHP、php/php.ini、メールの内容です。
また図がMercuryの設定内容です。
PHPの内容#################################################################################
<?php
$from = "admin@localhost";
$to = "admin@localhost";
$subject = '日本語サブジェクト';
$body = "本文です。\n日本語テスト";
//送信処理(日本語メール特有の文字コード変換とかヘッダの処理をする)
$body = mb_convert_encoding($body, 'iso-2022-jp', 'UTF-8');
$subject = mb_convert_encoding($subject, 'iso-2022-jp', 'UTF-8');
$subject = mb_encode_mimeheader($subject, 'iso-2022-jp');
$headers[] = "From: $from";
$headers[] = 'Content-Type: text/plain; charset=iso-2022-jp';
$headers[] = 'Transfer-Encoding: 7bit';
mail($to, $subject, $body, join("\n", $headers));
?>
xampp/php/php.iniの内容#################################################################################
[mail function]
SMTP = localhost
smtp_port = 25
sendmail_from = postmaster@localhost
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
mail.add_x_header = Off
mail.log = "C:\xampp\apache\logs\php_mail.log"
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = auto
mbstring.script_encoding = UTF-8
メールの内容#################################################################################
Received: from spooler by localhost (Mercury/32 v4.72); 26 Sep 2010 22:09:23 +0900
X-Envelope-To: <admin@localhost>
Return-path: <postmaster@localhost>
Received: from localhost (127.0.0.1) by localhost (Mercury/32 v4.72) with ESMTP ID MG000001;
26 Sep 2010 22:09:22 +0900
To: admin@localhost
Subject: =?ISO-2022-JP?B?GyRCRnxLXDhsJTUlViU4JSclLyVIGyhC?=
From: admin@localhost
Content-Type: text/plain; charset=iso-2022-jp
Transfer-Encoding: 7bit
本文です。
日本語テスト
お礼
ありがとうございます。