CGIからsedmailを呼び出してメールを送信しています。
その時に差出人の部分の日本語が文字化けしてしまいます。
そこで&jcode'convertでjisに変えたのですが、今度は
CGIがサーバーエラーになってしまいます。
どうすればよいでしょうか。

スクリプトはこんな感じです。
-----------------------------------------------
$from = '両国';
$subject = 'テスト';

&jcode'convert(*from, 'jis');
&jcode'convert(*subject, 'jis');
&jcode'convert(*msg, 'jis');

$errno = 1 unless open(MAIL, "| /usr/lib/sendmail -t");
return 0 if $errno;

print MAIL "To: $MailTo\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n";
print MAIL "Content-Type: text/plain;\n\n";
print MAIL "$msg\n";
$errno = 2 unless close(MAIL);
return 0 if $errno;

このQ&Aに関連する人気のQ&A

A 回答 (2件)

To: や From: には、ASCII文字の一部しか使えません。

しかも、そ
の構造も規定されているので、いわゆる xxx@yyy という形のアド
レスを含まないプレーンなテキストだけでは指定できないはずです。
可能な形式は、
xxx@yyy
か、
phrase <xxx@yyy>
で、(text) という括弧入りのコメントを適当な位置に置けます。

phrase とか text の部分に日本語を入れたいときには、MIMEエン
コードする必要があります。

参考URL:http://www3.cds.ne.jp/~marimo/data/rfc/rfc2047-j …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました!
入れた覚えのないメールアドレスがFROMにくっついて
くるのはそのせいだからなのですね。
すっきりしました。ありがとうございました!

お礼日時:2000/12/26 09:04

解決できるような回答ではありませんが.



メールのヘッダに日本語を書くことは、基本的には
できません.
JISコードに変換後、、MIME(Base64)でエンコードして
から送付しないとダメです.(RFC2045,RFC2047)

jcode.pl でなく、jcode.pm には、
MIMEエンコードの機能が付いています.
http://openlab.ring.gr.jp/Jcode/index-j.html

他にも、MIME 関係のモジュールを利用する手もあります.
(MIME::Base64 など)

参考URL:http://www.din.or.jp/~ohzaki/perl.htm#JP_Base64
    • good
    • 0
この回答へのお礼

素早いご回答ありがとうございました!
どうやら送れそうです。頑張ってみます。
ありがとうございました。

お礼日時:2000/12/26 09:06

このQ&Aに関連する最新のQ&A

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


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ