こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

auのiPhoneでの受信メールが文字化けします。

フリーのCGIをパーミッションを変える程度で設置できる程度のPerl超初心者です。

下のプログラムは、フォームを使って利用者のメールアドレスに送信してメールアドレスの確認のためのに書かれた部分らしいと思いますが、

通常のパソコンでは、届いたメールは文字化けしていません。
しかしながら、私が持っているauのiPhoneでは着信したメールが見事に文字化けしています。

ここより上も下も関係ない感じがするので、この辺りを切り取ってみました。
auのiPhoneで文字化けしないようにするにはどうすればいいのでしょうか?
それともこの辺りの記述じゃないのでしょうか?


お手数をお掛けしますが、教えてください。
お助けください。

よろしくお願い致します。


if ( $mail =~ /^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/ && $mail !~ /[\[\]\,\;\:\\\s\r\n\t]/) {
$print .= "<CENTER><BR><BR>$mail宛てにメールを送信致しました。<BR><BR>しばらくたってもメールが届かない場合はメールアドレスが間違っている可能\性があります。<BR><BR>メールが届かない場合は再度お願い致します。<BR><BR>\n";

open(OUT,"| $sendmail -t");
&jcode'convert(*mailcheckkenmei,'jis');
print OUT<<"EOM";
To: $mail
From: $mastermail
Subject: $mailcheckkenmei

EOM
print OUT "お客様のメールアドレスを確認しました。\n下記URLにアクセスしてください。\nこのメールに心あたりがない場合はお手数ですが返信してお知らせください。\n\n\n";
print OUT "$basedir/formmail.cgi?query=$encmail";
close(OUT);
&print($print);
exit;
}else{
if ($mail){
$print .= "<p><Font color=\"red\">メールアドレスを確認してください</FONT></p>\n";
}
}

投稿日時 - 2012-10-13 21:48:00

QNo.7747109

困ってます

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

メールを送信するときは。文字コードが非常に重要になります。
Content-Type: ヘッダをつけるようにしてください。
ヘッダをつけたとしても、一部のMUAは正しく認識してくれません。
ISO-2022-JPかUTF-8が無難と思われます。
ソースからヘッダを含めてjisに変換しているようですので、適切なContent-Type: ヘッダがあれば良さそうですね。
(ヘッダを含めてconvertはあまりにも乱暴です。)
複数バイト系の文字列は、(まずあり得ませんが)途中通過するMTAで欠落する場合があります。
7bitで表現できないコードは、BASE64でエンコードしてください。

メール送信の仕組みの基本を理解して、プログラミングされる様、お願いいたします。

投稿日時 - 2012-10-14 04:28:32

お礼

あんまり分からないですが、このCGIを使うのは止めにしました。
少しずつ勉強していきます。ありがとうございました。

投稿日時 - 2012-10-18 10:56:42

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問