電子書籍の厳選無料作品が豊富!

表題のようなスクリプトを使っているのですが、
普通は特に問題ないのですが、「http://」などから始まる
URLのみを書き込んで送ると、空メール(何も記載されない)となって
届いてしまいます。どこがおかしいのかわかりません。
以下のようなスクリプトです。

@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {

($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;

&jcode'convert(*name,'sjis');
&jcode'convert(*value,'sjis');

if ($name eq 'to') { $to = $value; }
if ($name eq 'from') { $from = $value; }
if ($name eq 'subject') { $subject = $value; }
if ($name eq 'body') { $body = $value; }

}

# cheack
if ($from eq "") { $from = "unknown\@."; }
if ($from eq " ") { $from = "unknown\@."; }


# send mail
&jcode'convert(*from,'jis');
&jcode'convert(*subject,'jis');
&jcode'convert(*body,'jis');
if (!(open(MAIL,"| $sendmail -t"))) { &error('システムエラー','メールの送信に失敗しました。'); }
print MAIL "To: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n";
print MAIL "Content-Type: text/plain; charset=iso-2022-jp\n";
print MAIL "$body\n";
close(MAIL);

# view html
&jcode'convert(*from,'sjis');
&jcode'convert(*subject,'sjis');
&jcode'convert(*body,'sjis');
$body =~ s/\r\n/\r/g;
$body =~ s/\n/\r/g;
$body =~ s/\r/<BR>/g;

A 回答 (1件)

こんにちは。



解決になるか分かりませんが、
sendmailのヘッダと本文の間は1行入れる必要があったと思います。

なので...
"Content-Type: text/plain; charset=iso-2022-jp\n";

の改行を\n\nにしてみてください
# もしかしたら"Subject: $subject\n"の方かも?
    • good
    • 0
この回答へのお礼

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

に改行を加える事で解決しました。
どうも有り難う御座います。

お礼日時:2002/08/30 01:57

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