- ベストアンサー
sendmailのFROMに日本語を使う
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;
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
解決できるような回答ではありませんが. メールのヘッダに日本語を書くことは、基本的には できません. JISコードに変換後、、MIME(Base64)でエンコードして から送付しないとダメです.(RFC2045,RFC2047) jcode.pl でなく、jcode.pm には、 MIMEエンコードの機能が付いています. http://openlab.ring.gr.jp/Jcode/index-j.html 他にも、MIME 関係のモジュールを利用する手もあります. (MIME::Base64 など)
その他の回答 (1)
- punchan_jp
- ベストアンサー率55% (155/280)
To: や From: には、ASCII文字の一部しか使えません。しかも、そ の構造も規定されているので、いわゆる xxx@yyy という形のアド レスを含まないプレーンなテキストだけでは指定できないはずです。 可能な形式は、 xxx@yyy か、 phrase <xxx@yyy> で、(text) という括弧入りのコメントを適当な位置に置けます。 phrase とか text の部分に日本語を入れたいときには、MIMEエン コードする必要があります。
お礼
ご回答ありがとうございました! 入れた覚えのないメールアドレスがFROMにくっついて くるのはそのせいだからなのですね。 すっきりしました。ありがとうございました!
お礼
素早いご回答ありがとうございました! どうやら送れそうです。頑張ってみます。 ありがとうございました。