こんばんわ。JEISON@OSAKAです。 sendmailで教えてください。 Apacheのerr.logに"Premature end of script headers: sendmail.cgi" のエラーが出てメールが送信できません。 今日一日悩んでいます。HP等を検索しましたが、解決の通が分かりませんでした。 下のCGIプログラムは下記アドレスにあったものでテストしています。 宜しくお願いします。 OS:VineLinuX2.5(FPD) Machine:PowerMac8500 http://www5a.biglobe.ne.jp/~n_rieko/cgi/sendmail.htm#about <CGI-SCRIPT> #!/usr/bin/perl # 初期設定 -----------------------------------------------# # # sendmailへのパス # $sendmail = '/usr/lib/sendmail'; # # jcode.plへのパス # $jcode = './jcode.pl'; # # メールの送付先 # $to = 'jeison@xxxxxxxxxxxxxx'; # # メールの題名 # $subject = 'CGIメール送信サンプル'; # # 確認ページより戻るでリンクされるURLを指定 # $back = 'http://www5a.biglobe.ne.jp/~n_rieko/'; # 処理開始 -------------------------------------# # //////////////////////////////////////////////# # 事前処理 # //////////////////////////////////////////////# # 文字コードライブラリの読込み require $jcode; # //////////////////////////////////////////////# # QUERY復元処理 # //////////////////////////////////////////////# if($ENV{REQUEST_METHOD} eq "POST"){ read(STDIN,$input,$ENV{CONTENT_LENGTH}); } else { $input = $ENV{QUERY_STRING}; } foreach ( split('&', $input ) ){ ($name, $value) = split('=',$_,2); $value =~ s/\+/ /g; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $html{$name} = $query{$name} = $value; } # //////////////////////////////////////////////# # 送信データの作成 # //////////////////////////////////////////////# # ---------- 送信者氏名 ---------- # if ($query{name}){ $mail_body = "\n《 お名前 》\n$query{name}\n"; } # ---------- メールアドレス ---------- # if ($query{mail}){ $mail_body .= "\n《 メールアドレス 》\n$query{mail}\n"; } # ---------- URL ---------- # if ($query{url}){ $mail_body .= "\n《URL 》\n$query{url}\n"; } # ---------- コメント ---------- # if ($query{comment}){ $mail_body .= "\n《 コメント 》\n$query{comment}\n"; } # //////////////////////////////////////////////# # MAIL送信 # //////////////////////////////////////////////# &jcode'convert(*mail_body,'jis'); &jcode'convert(*subject,'jis'); open(MAIL,"| $sendmail -t") || &error_exit("sendmailの起動に失敗しました"); # ヘッダ情報出力 print MAIL "To: $to\n"; print MAIL "From: $query{mail}\n"; print MAIL "Subject: $subject\n"; # 本文出力 print MAIL "$mail_body\n"; close(MAIL) || &error_exit("メールの送信に失敗しました"); # //////////////////////////////////////////////# # HTML出力 # //////////////////////////////////////////////# print "Content-type: text/html\n\n"; print '<HTML><HEAD>'."\n"; print '<TITLE>送信完了</TITLE>'."\n"; print '</HEAD><BODY>'."\n"; print '<P>'."\n"; print '<CENTER><H2>正常のに送信しました。</H2></CENTER>'."\n"; print '</P>'."\n"; print '<DIV ALIGN="right"><H3>'; print '<A HREF="' .$back. '">戻る</A>'; print '</H3></DIV>'."\n"; print '</BODY></HTML>'."\n"; exit; # //////////////////////////////////////////////# # サブルーチンの定義 # //////////////////////////////////////////////# # エラー処理------------------------------------# sub error_exit { print "Content-type: text/html\n\n"; print '<HTML><HEAD>'."\n"; print '<TITLE>Error Request</TITLE>'."\n"; print '</HEAD><BODY>'."\n"; print '<P>'."\n"; print '<CENTER><H2>'.$_[0].'</H2></CENTER>'."\n"; print '</P>'."\n"; print '<DIV ALIGN="right"><H3>'; print '<A HREF="javascript:history.back()">戻る</A>'; print '</H3></DIV>'."\n"; print '</BODY></HTML>'."\n"; exit; } [mozillaのアドレス欄] http://localhost/~mail/sendmail.cgi?mail=jeisonni@xxxxxxx&name=knave&comment=sample