和久田さん、
(2)は AN HTTPD のログではわからないでしょうから、あのように書きました。
「送れない」という時にメールサーバのログには何もでていないのですか?
お世話になります。
(2)CGIの中で sendmail の起動に失敗している →「logではなく別の調べ方」というとどのようにしたらいいのでしょうか
和久田さん、
(2)であればログというより別の調べ方が必要だと思います。
中田さんありがとうございます。
(2)が一番怪しそうです。logをとってみます。
和久田さん、
以前の話の方は、もし perl.exe のフルパスを指定しないといけないということは perl.exe への PATH が設定されていないということですから、必ず(perlが見つからないという)エラーになったはずです。
本題の方は、「CGIからは送信できません」というと、
(1)CGIの起動に失敗している
(2)CGIの中で sendmail の起動に失敗している
(3)CGIの中で sendmail に渡すアドレスなどのパラメータがおかしい
(4)sendmail, メールサーバが何らかのエラーをおこしている
(5)送る相手のメールサーバでエラーになっている
くらいだと思います。
正常に送信できる時にちゃんとメールサーバのログが記録されるようにしておかないと判定できませんが、(1)(2)でだめな場合はメールサーバのログに何も出てこないはずです。
もっとも(1)なら AN HTTPD がエラーを返すはずですが、それはないのですよね?
(2)は、sendmail が終了コード(正常終了したかエラーがあったか)を返すようなら、それを見るべきでしょう。
とりあえずメールサーバのログに何も出てこないのなら、AN HTTPD で プロセスのログも取るようにしておいてprocess.log と errors.log を見てください。よくわからなければ、process.log と errors.log をメールで送ってください。ただしその場合は そのCGIも送ってもらう方がいいですね。
(3)(4)に問題があるかどうかは、メールサーバのログでわかると思います。
(5)はエラーメールが返ってくるのが普通でしょう。
sendmailを利用するcgiについてですが、メールサーバはSPA Mail Server を使用し付属のsendmailを利用しています。
メールフォームのcgiなど問題なく送られてくるのですが、時々送られなくなります。
このときsendmailをコマンドラインからテストすると送信できますが、cgiからは送信できません。
そこでhttpdを再起動させるとcgiからも送れるようになります。
cgiから送信できないときでもBBSなどのcgiは、問題ありません。
どのあたりからチェックしていくといいでしょうか?
以前すべてのCGIがよくエラーになる現象があったのですが、実行プログラムにc:\***\***\perl.exeとしたら出なくなりました。