.qmail を使ってメール受信時にコマンドを実行する
qmailでは.qmailファイルにメールの転送先を記述できますが、
その転送先をプログラムにすることもできます。
書き方は次のようになります。
| /home/test.php
※もちろんパスやファイル名は自由です
そしてプログラムには、メールの中身は標準入力で受け渡されてくるので、次のようなプログラムを用意すれば、そのまま中身を転送するといったことができます。
#!/usr/bin/php <?php $message = file_get_contents("php://stdin"); mb_send_mail('test@example.com', 'testの件名', $message); ?>
※上の例は、メールの転送ではなくて、メールのソースの転送になるので、文字として読めない内容のものが転送されてきたりします。
メールが届いたらリアルタイムで何か処理をさせたいというときに使えます。
メールのソースが渡されてくるので、メールの内容に応じて処理をおこなうときは、PEARのメール関連のライブラリなどを使って、デコードしたり、添付ファイルを解析したりといったプログラムを書くことになります。
他の書き方例
CLI版phpを起動する。引数はスクリプトを記述したファイル。
| /usr/bin/php /home/test.php
プログラムを実行する。メール自体もメールボックスに配送する。
コメント