プロが教えるわが家の防犯対策術!

こんにちは。
CGIから自動返信されるメールが
人によって文字化けしてしまうそうです。

私の場合は、文字化けしないのですが・・・。
誰も文字化けしないような、自動返信メールを作りたいのですが、
CGIのどこをいじればよいかわかりません。

よかったら、教えてください。お願いします。

A 回答 (4件)

まず、#2さんのところに書いてあるようにContent-Type: text/plain;の後にcharset="iso-2022-jp"は入れたほうがいいでしょうね。



print OUT "Subject: $subject\n";
print OUT "Content-Type: text/plain; charset=\"iso-2022-jp\"\n";
print OUT "Content-Transfer-Encoding: 7bit\n";
みたいな感じで。

それと、出していただいたのはヘッダの部分で肝心な本文の部分が出てこないんですが、スクリプトのどこかに
require 'jcode.pl';
とか
&jcode::convert(*body, 'jis');
みたいな行は入っていますか?

この回答への補足

ご回答ありがとうございました。

→print OUT "Content-Type: text/plain; charset=\"iso-2022-jp\"\n";
を入れてみたところ、CGIが正常に動きません。
どうしてでしょうか・・・
下の場合はエラーにはなりません。
print OUT "Content-Type: text/plain\n";

すみませんが、よろしくお願いします。

補足日時:2006/03/02 05:30
    • good
    • 0
この回答へのお礼

スクリプトに、
require 'jcode.pl';
は、存在しました。
原因は、charset="iso-2022-jp"だと思われます。

教えていただいたコーディングそのまま使わせていただきました。
とりあえず、これで対応したいと思います。
本当にありがとうございました。

お礼日時:2006/03/02 04:32

理由として


○メッセージがJISに変換されていない
○メールヘッダに文字コード指定がない(#2さんの回答参照)
ぐらいが考えられます。

「sendmail」と書かれている辺りのスクリプトを出してもらえますか? それと、スクリプト自身の文字コードは何で書かれていますか?

この回答への補足

ありがとうございます。
最初にこのような感じで、
#!/usr/local/bin/perl
require 'jcode.pl';
$sendmail = '/usr/lib/sendmail';

メール送信は↓
#メールの送信
sub sendmail {
if (!open(OUT,"| $sendmail $mailto")) { &send_error; }
print OUT "mailForm: mailForm V1.0\n";
print OUT "To: $mailto\n";
print OUT "From: $email\n";
print OUT "Subject: $subject\n";
print OUT "Content-Transfer-Encoding: 7bit\n";
print OUT "Content-Type: text/plain\n";

このような感じになっています。
修正は秀丸で行っています。
よろしくお願いします。

補足日時:2006/03/01 14:34
    • good
    • 0

メールヘッダに文字コード指定と転送コード指定はありますか?



Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
こんなの。

この回答への補足

ありがとうございます。
print OUT "Content-Transfer-Encoding: 7bit\n";
print OUT "Content-Type: text/plain\n";
このような感じのところでしょうか?

Content-Type: text/plain; charset="iso-2022-jp"
っていうのは見つかりません。
加えた方がよいのでしょうか。

補足日時:2006/03/01 14:38
    • good
    • 0
この回答へのお礼

Content-Type: text/plain; charset="iso-2022-jp"

が見当たらないので、原因はそれかもしれません。
ありがとうございます。

お礼日時:2006/03/02 04:28

CGIが送信しているメールの文字コードの問題だと思われます。



最低限ヘッダー情報に文字コードを記述しましょう。
ただ、それだけだとメーラーによって化けてしまうものもあるようですので、
ヘッダー~本文まで文字コードは統一されている方がいいようです。

※独学での判断結果なので、正式な規定等とずれている場合がありますので御了承ください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ヘッダー情報に文字コードを追加してみます。

お礼日時:2006/03/02 04:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!