問い合わせフォームの自動返信文の文字化けについて質問します。
自分の環境では文字化けしないのですが、自動返信を受けたときに
文字化けしていますという連絡がたまにあります。
本文が文字化けしているようなのですが、
これはphp側の記述に不足があるということでしょうか。
メーラーの設定もありますでしょうか。
php内に、下記を記述しております。
ini_set("mbstring.internal_encoding","UTF-8");
mb_language("Japanese");
自動返信のソースも記載させていただきます。
# ここから追加 # ---------------------------------------------------- 自動返信 ---------------------------------------------------- $AUTOREPLY_mar = 'reply.txt'; # 返信内容の設定ファイルのパス $AUTOREPLY_fmf = '../mailfooter.txt'; # 返信メールのFOOTER/のパス $AUTOREPLY_msg = ''; $AUTOREPLY_msg .= (is_file($AUTOREPLY_mar)) ? file_get_contents($AUTOREPLY_mar) : 'ERROR : メッセージファイルが読み込めません。'; $AUTOREPLY_msg .= (is_file($AUTOREPLY_fmf)) ? file_get_contents($AUTOREPLY_fmf) : 'ERROR : フォーマットからFOOTER.TXTが読み込めません。'; $AUTOREPLY_to = ''; $AUTOREPLY_flag = false; reset($_POST); while ($D = each($_POST)) { if ($D[1] == '' || $D[0] == 'x' || $D[0] == 'y') { continue; } if ($D[0] == 'email') { $AUTOREPLY_to = $D[1]; } # if ($D[0] == 'Emailでの連絡を希望する') { $AUTOREPLY_flag = true; } $AUTOREPLY_msg = str_replace('<<'.( $D[0] ).'>>',$D[1], $AUTOREPLY_msg); } if (preg_match('/^(.+)[\n|\r|\r\n]/',$AUTOREPLY_msg, $RegExp)) { $AUTOREPLY_sbj = $RegExp[1]; } $AUTOREPLY_msg = preg_replace('/^(.+)[\n|\r|\r\n]/','', $AUTOREPLY_msg); $AUTOREPLY_hdr = 'From:'.( mb_encode_mimeheader(mb_convert_encoding("会社名","UTF-8","AUTO")) ).'<official-info@aaaa.com>'."\r\n".'Reply-To:official-info@aaa.com'."\r\n".'X-Mailer: '.$X_Mailer; mb_send_mail($AUTOREPLY_to,$AUTOREPLY_sbj,$AUTOREPLY_msg,$AUTOREPLY_hdr,'-f'.$AUTOREPLY_to); $Message .= "\n\n------\n".$AUTOREPLY_msg; # ここまで # ---------------------------------------------------- send mail ---------------------------------------------------- $HEADERS = 'From: '.$From."\r\n".'Reply-To: '.$Reply_To."\r\n".'X-Mailer: '.$X_Mailer; mb_send_mail($To,$Subject,$Message,$HEADERS,'-f'.$To); ?>
$Messageに本文が入っているのですが、$Messageに対しての
エンコードの記述が必要でしょうか?
メールについて理解が浅く、ご教示いただけましたら幸いです。
どうぞよろしくお願いいいたします。
回答1件
あなたの回答
tips
プレビュー