[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[postfix-jp:03804] コマンド 起動のエラーメッセージの 取得方法
- Subject: [postfix-jp:03804] コマンド 起動のエラーメッセージの 取得方法
- From: HAYAKAWA Hiroshi <hayakawa@xxxxxxxxxxxxxxx>
- Date: Mon, 05 Jan 2004 11:42:16 +0900
早川@名古屋 です。
Postfix自体の問題ではない気もするのですが、
メールからのコマンド起動に関してちょっと悩んでいます。
お知恵をお貸しください。
/etc/postfix/aliasesに
test: |/.../testd.php
の様に記述し、メールの受信によってプログラムが実行されるようにしています。
(設定・修正後にはもちろんnewaliasesを実行します)
しかし、プログラムにバグがあったりして異常終了した場合、
このままでは検知できません。
crontabでプログラムを実行した場合には、
プログラムが異常終了したときには通常メールが自動送信されますが、
これと同様のことを実現したいと思っています。
test: |"/.../testd.php 2>&1 | mail -s 'testd warn/error' hogehoge"
とするとエラー時にエラーの内容をメール送信することはできますが、
(後述の場合とは異なり、メール全文については含まれない)
正常に処理された場合にも空のメールが送信されてしまいます。
test: |"/.../testd.php 2>&1 || mail -s 'testd warn/error' hogehoge"
もしくは
test: |"/.../testd.php || mail -s 'testd warn/error' hogehoge"
とした場合、プログラムであるPHP-cliのエラーのときには
メール全文(ヘッダも含めて)が送信されますが、
(正常に処理された場合にはメールは送信されない)
プログラム中でのシェルのエラーだったときには送信されません。
具体的には、PHP(4.3.4-cli)のmail()関数に関して
sh: -c: line 3: syntax error: unexpected end of file
というエラーが起きることを知っているので
これを意図的に発生させて確認していますが、
このメッセージを得ることができません。
Postfixによるコマンド起動を利用されているみなさんは
どのように設定されていますでしょうか?
ちなみに上記のmail()関数でのエラーは
追加パラメータの指定の際に、
$mail_params = "-f anybody@example.com\n";
のように最後に改行コードがついている場合で、
PHPのバージョンが4.3.4の場合に起こるものです。
mb_send_mail()関数では同様の現象は発生しませんし、
4.2.2, 4.2.3, 4.1.2のmail()関数では起きません。
http://jp2.php.net/manual/ja/function.mail.php
-----
With your dreaming, with your smile.
Hayakawa, Hiroshi <hayakawa@xxxxxxxxxxxxxxx>
Nagoya,Aichi,JAPAN ☆彡
- Follow-Ups
-
- [postfix-jp:03805] Re: コマン ド起動のエラーメッセージ の取得方法, Takahiro Kambe
[検索ページ]
[Postfix-JP ML Home]