.forwardファイルを使ってPHP等のプログラムにメールを処理させることがありますが、ちょっと躓いたのでメモ。
まず、何もなければ、.forwardファイルに以下のように書けばいい。
> vi .forward
"| /usr/bin/php /home/john/sciptfile.php"
(john, scriptfile.phpあたりは任意でっせ。)
ところが、smrshが動作していると簡単には実行してくれません。
勝手にプログラム起動して処理するなということです。
smrshに許可してもらうには、/etc/smrsh内に実行ファイルのリンクを作成してやればよい。
こんなコマンド↓
> ln -s /usr/bin/php /etc/smrsh/php
とここまではよく見かけます。
しかし今回はこれでうまくいきませんでした。
.forwardファイル内の記述が問題のようで、絶対パスは無視されたりいろいろ制約があるようです。
詳細は偉い人に聞いてください。すいません。
でどうするかというと。
.forwardに記述する内容を単純化するためシェルスクリプトを1つ作成します。
> vi scriptcall.sh
#!/bin/sh
/usr/bin/php /home/john/sciptfile.php
↑こんな単純なファイル。
作成したシェルスクリプトに実行権限をつけて、smrshで実行できるようにシンボリックリンクを作成。
> chmod 755 /etc/smrsh/scriptcall.sh
> ln -s /usr/bin/scriptcall.sh /etc/smrsh/scriptcall.sh
.forwardファイルの内容を以下の用に変更
>vi .forward
|sciptcall.sh
以上でjohnさんにメールが来るとプログラムにメールが渡されます。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿