フォームメールでタイトルが文字化けする
こちらのサイトにある
http://www.sapphirus.biz/php/sformmail/
フォームメール1というものを利用して確認画面つきのフォームを作成しております。
こちらのサイトでダウンロードしたものをデフォルトで利用すると
ユーザーに対する自動返信メールに
sformmail.php内の設定項目に記述したメールアドレスが
メールの送信者の所に表示されて返信されてきます。
/ 設定
$mail_to = 'XXXXXXXXXXXX'; // フォームデータを受け取るメールアドレス
$mail_subject = 'S.B.フォームメール送信'; // 受け取る時のSubject(件名)
$reply_subject = 'S.B.フォームメールより自動返信です'; // 送信者へ自動返信のSubject(件名)
$mail_bcc = ''; // BCCで受け取りが必要な場合は設定
$internal_enc = 'UTF-8'; // 文字エンコード
送信者のところにメールアドレスだけでなく、
日本語名も追加して自動返信メールを使いたかったため、
sformmail.php内の
// メール自動返信
if ($_SESSION['autoReply'] && $_SESSION['email'] && is_file('reply.php')) {
$reply_header = "From:{$mail_to}\n";
if ($mail_bcc) $reply_header .= "Bcc: {$mail_bcc}\n";
$reply_header .= "X-Mailer: {$x_mailer}";
include ('reply.php');
$reply_message = html_entity_decode($reply_message, ENT_QUOTES, $internal_enc);
$reply_message = str_replace("<br />", "", $reply_message);
$reply_message = str_replace("\t", "\n", $reply_message);
$reply_message = mb_convert_encoding($reply_message, $internal_enc, 'AUTO');
mb_send_mail($mail_from, $reply_subject, $reply_message, $reply_header);
}
にある
$reply_header = "From:{$mail_to}\n";を
$reply_header = "From:{YYYYYYY}{$mail_to}\n";
と変更しました。
結果、Gメールでメールを受け取ると送信者欄にYYYYYYYとメールアドレスが表示されるのですが
メーラーによってYYYYYYYの部分が文字化けしてしまいます。
色々と調べておりましたら文字コードが
$internal_enc = 'UTF-8'; // 文字エンコード
という設定がありますが
$reply_header = "From:{YYYYYYY}{$mail_to}\n";
に反映できていないのが問題と見受けられますが
修正方法がわかりません。
当方CGIの知識がないため、ご教示いただければ幸いです。