perl フォームメール送信の文字化けについて
フォームメール送信の文字化けについてお教え下さい。
よろしくお願い致します。
まずは環境より申し上げます。
環境
xampp-win32-1.7.7-VC9
同封
apache2.2.21
php5.3.8
perl 同封されているもの
-----------------------------
xmailサーバーも動いています。
内部、外部、外部から外部、ともに正常に送受信できています。
以前はANHTTPDとperlとsendまね~るで問題なく動いていましたが
このたびPHPが必要になりましたので以前のperlをアンインストールしてXAMPPをインストールしました。
以前からの自作のメールフォームを設置してメールを送信すると
受付確認メールと問い合わせ報告メールのすべてが文字化けしています。
一応 文字コードはUTF-8で mail.html、 perlプログラム、ともに統一しています。
apacheのhttpd.confの中にはAddDefaultCharset・・・の設定項目がなぜかありませんので
apacheについては文字コードの設定などはおこなっておりません。
症状ですが
メールフォームに入力して確認ボタンを押すと現れる確認画面は
文字化けしておりません、高崎、申す、表示という文字も化けていません。
このあと送信ボタンを押すと メールは宛先へ正常に届きますが
タイトルからすべてが文字化けで読む事はできません。
原因探しが三日くらい続き、気になって寝られません。
ひろいあつめて書いたコードですが、
よろしくお願いいたします。
# MIMEエンコード
$mail_to = mimeencode($MAILTO);
$mail_from = mimeencode($FORM{'name'});
$mail_subject = mimeencode($FORM{'subject'});
# 文字コードの変換
$body = jcode::jis($user_owner);
# メールヘッダーの生成
$header = <<END;
To: $mail_to
From: $mail_from<$FORM{'email'}>
Subject: $mail_subject
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
# サーバー出力
print <<END;
Content-type: text/html; charset=utf-8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
# メールの送信
open(MAIL, "| $SENDMAIL -i -t -f $FORM{'email'}")
or die("エラー:sendmailへのパイプが開けません");
print MAIL $header, $body;
close MAIL;
部分的で分かりにくいかもしれませんが
どなたか どうぞよろしくお願いいたします。
お礼
ご回答ありがとうございます。 >文字化けを読めるようにするより、 >文字化けしないように改善すべきではないですか? 済みません、私の言葉が足りませんでした。 サイト自体はi-mode用のページもPC用のページも、Shift-JISの宣言をしています。 フォームのソースは、メールフォームサービスを提供している会社の、「このままコピー&ペーストして下さい」と言うものを使っています。SSL通信を使っていて、自分で設置したCGIなどではありません。 自分の携帯からテスト送信した時も普通に読めるものが送信されたので、これ以上、文字化けさせない為の改善の余地が無いのです。 なので、文字化けを読めるようにしたかったのです。
補足
色々検索していたら良いツールを公開しているサイトさんが見つかりました。 ありがとうございました。どうも私のケースは改善のしようが無いみたいなので、質問はここまでにします。ありがとうございました。 私のほかにも同じ内容で困っている方がいるかも知れませんので、ツールのURLも書いておきます。 http://wolfside.com/i/x/code.php