
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;
No.1ベストアンサー
- 回答日時:
解決できるような回答ではありませんが.
メールのヘッダに日本語を書くことは、基本的には
できません.
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
No.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 …
ご回答ありがとうございました!
入れた覚えのないメールアドレスがFROMにくっついて
くるのはそのせいだからなのですね。
すっきりしました。ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
アルファベットに付いて質問し...
-
Perlのエラーについてご教授く...
-
perlをバージョンアップしたら...
-
perlについての質問
-
INDIRECT 横に再度抽出したい
-
openした後、closeしないでプロ...
-
検索ボックスから製品名を検索...
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sendmailで複数の宛先にメール...
-
sendmailで送信したメールが届...
-
フォームの日本語が文字化け
-
自動返信について
-
Perlからメール送信で文字化け
-
perlのメールフォームでS/MIME送信
-
Perl メール 初心者
-
Perl SendMail Bcc メルマガ
-
sendmailのFROMに日本語を使う
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
formで特定のinputを送信しない...
-
メモリをアドレスを直接指定し...
-
セレクトメニューで2つの項目...
-
「*:*」って何を意味するのでし...
-
シェルスクリプトで、空白(ス...
-
実行時エラー 3020の対策
-
<SELECT>タグの折り返し
-
ACCESS テキストボックスを隙...
-
16進の10進変換について
おすすめ情報