/etc/aliasesに
以下の行を追加します
regist_csv:"| /usr/local/bin/php /home/risho/reply_csv.php"
newaliases実行
ですがバッチがうまく動きません。
postfixのaliasesの場所は
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
となっているのでaliasesの場所は間違っていないと思います。
また
regist_csv: abc@dbaf.jp
などコマンドでなくメールの転送はうまくいっています。
phpファイルの権限もディレクトリも777で所有者もルートでないのですが、、
http://www.kobitosan.net/postfix/trans-2.2/jhtml/local.8.html
メールの転送ができるようでしたら、aliases 関連の操作手順は間違ってないでしょう。気になる点を挙げると、
allow_mail_to_commands , command_execu-tion_directory , execution_directory_expansion_filter などを main.cf で確認してみてください。手っ取り早く確認するなら、
hogetest: "|/bin/mail your@mail.address"
とかのより単純なコマンドが動作するようでしたら、aliases からのコマンド実行自体は大丈夫と見ていいでしょう。
動かす php スクリプトの内容を "hello, world" を /tmp な一時ファイルに書き出す程度の単純なものに変えてみる、とか。
これで動くようでしたら、postfix から呼ばれる際の環境と php スクリプト側で期待している環境との不一致の類が問題点かと思います。
現時点でいう「うまくいかない」内容が、何らかのエラーを発してくれているようでしたら、それを提示してみるのが役に立つ回答への近道かもしれません。
とりあえず、
/usr/local/bin/php /home/risho/reply_csv.php
を単体で実行して問題が無いか。
/var/log/maillog にエラーがでていないかを確認しましょう。
http://www.kobitosan.net/postfix/trans-2.2/jhtml/aliases.5.html
単体で実行しても問題はないみたいです。
maillogは以下の通りです。
うーむ。他のサーバではうまくいってるのですが手づまりじょうたいです。
logは以下の通りです。
Oct 19 18:16:40 localhost postfix/smtpd[24257]: 6A9F0306A0: client=nmoPF08.ezweb.ne.jp[219.125.149.138]
Oct 19 18:16:40 localhost postfix/cleanup[24258]: 6A9F0306A0: message-id=<200610190916401921440084CR8B@nm17imap048.ezweb.ne.jp>
Oct 19 18:16:40 localhost postfix/qmgr[18583]: 6A9F0306A0: from=<localhost80@ezweb.ne.jp>, size=448, nrcpt=1 (queue active)
Oct 19 18:16:40 localhost postfix/local[24336]: 6A9F0306A0: to=<regist_csv@kaf.in>, relay=local, delay=0, status=sent (delivered to command: /usr/local/bin/php /home/risho/reply_csv.php)
Oct 19 18:16:40 localhost postfix/qmgr[18583]: 6A9F0306A0: removed
ログを見る限り Postfix 側では特にエラー無く処理されていますね。
プログラムも実行されエラーを出している形跡はありません。
http://www.kobitosan.net/postfix/trans-2.2/jhtml/local.8.html
あとは単純にプログラムの動作上の問題だと思います。
どのようなプログラムかが分からないのでなんともいえませんが、
動いているサーバーと動作しないサーバーでOSや Postfix のバージョンに違いはありませんか?
またプログラム側でも予期しない動作をしていないかいろいろ debug した方がよいように思います。
プログラムはシェル上から直接実行すると実行できます。
動いているほうはfedore5
動いていないほうはfedora4
両方ともyumからインストールしています。
delivered to command: /usr/local/bin/php /home/risho/reply_csv.php
とかいてあるのでエラーは起きてないみたいです。
> 単体で実行しても問題はないみたいです。
質問の例の場合、 postfix は /etc/aliases ファイルの所有者の権限で
"/usr/local/bin/php /home/risho/reply_csv.php" を実行します。
php スクリプトの内容によっては、実行ユーザーの違いにより
不成功になる可能性があると思います。
単体でテストした際にはこの条件を合わせましたか?
http://axon.phys.nagoya-u.ac.jp/~murase/sys/mail/postfix.html
追伸:
maruyamatyouさんの前の質問にコメントを入れてありますので回答して下さい。
丁寧なご回答ありがとうござます。
前の問題はどうやらUSEN光とdocomo回線の愛称が悪いことから生じたようです。
phpスクリプトは権限777 にして
usr/local/bin/php /tmp/test.php
test.phpは以下のとおり
$tmp = `touch aaa`;
?>
のような簡易てきなコマンドで実行していますがやはりじっこうできないままです。
なおaaa作成ディレクトリも777になっています。
シェル上から直接コマンドをうてば成功しますが
/etc/aliases経由だとどうもうまく動きません
すみません。ログは以下のような感じですがエラーがどこなのかわかりませんです。
Oct 19 18:16:40 localhost postfix/smtpd[24257]: 6A9F0306A0: client=nmoPF08.ezweb.ne.jp[219.125.149.138]
Oct 19 18:16:40 localhost postfix/cleanup[24258]: 6A9F0306A0: message-id=<200610190916401921440084CR8B@nm17imap048.ezweb.ne.jp>
Oct 19 18:16:40 localhost postfix/qmgr[18583]: 6A9F0306A0: from=<localhost80@ezweb.ne.jp>, size=448, nrcpt=1 (queue active)
Oct 19 18:16:40 localhost postfix/local[24336]: 6A9F0306A0: to=<regist_csv@kaf.in>, relay=local, delay=0, status=sent (delivered to command: /usr/local/bin/php /home/risho/reply_csv.php)
Oct 19 18:16:40 localhost postfix/qmgr[18583]: 6A9F0306A0: removed