メール受信をトリガーにして任意のプログラムを実行する
やりたいことがある。
1.メール受信(トリガー)
2.メールの本文を取得し、メール本文を変更
3.変更したメールを任意のメールアドレスへ転送
1をトリガーに任意のプログラムを実行
そのプログラム内にて2,3を行う、ということができるのだろうか・・・
メール受信をトリガーにする
まず1についていろいろ調べた。
いろいろ調べてみるとどうやら使用しているサーバーによって
いろいろな方法があるようである。
以下のサイトで3つのサイトについてまとめていた。
「さくら」「XREA」「X Server」である。
floatingdays: レンタルサーバーでメール受信時にプログラム起動する方法
自分の場合は「XServer」なのだが、気になるのは、
直接mailfilterを編集しなければいけない?
という部分である。
いろいろ調べて試してみるとこんな記事を見つけた。
結論:Xserverコントロールパネルのメール振り分けではなく、直接それを管轄する .mailfilterファイル内部を書き換える。
↓.mailfilterファイルは下記の場所
/hoge.com/mail/hoge.com/blog@hoge.comその一番最後の行に下記の一文を入力。
to "| /usr/bin/php /home/ユーザーID/hoge.com/public_html//////openpne/bin/mail.php"
to "| /usr/bin/php ←"|の後に半角スペース。
phpのパスはサーバーによって、違うので注意。
Xserverの場合、PHP4はこれ、PHP5は/usr/bin/php5になる。
あとは、サイト絶対パスで/bin/mail.phpの位置を指示。
xserver メール振り分け .forward .mailfilter - haiduru
しかし他にも調べているとコントロールパネルからでも可能なようである。
XServer に移行してみてさっそくメール駆動アプリを作ろうとしたのです。
で Google先生に頼ってみたりあーだこーだと試行錯誤してみたりしたのですが
結局は「コントロールパネルから設定できた」という結果があまりにアレなので公開します。
[XServer] XServer でメール受信時に phpを起動する | trash-area.com
で、結論的には「コントロールパネル」の「メールフィルターの追加」からでも
直接編集でもどちらでも可能、ということがわかった。
(ただし直接編集は試していない。)
先ほどのサイトに思いっきりその方法が書かれているのであるが、
ここでも一応そのやり方をメモっておこう。
Xserverにてメール受信したら任意のプログラムを実行する方法
コントロールパネル
トップ → メールの振り分け → メールフィルターの追加
メール振り分け設定
メールフィルタの追加 → 任意の条件設定
ここで、「処理方法(宛先)」が重要
| /usr/bin/php /home/ユーザーID/ドメイン/public_html/test/test.php
半角スペースを「/usr」の前と「/home」の前に忘れずに。
もしphpが5の場合は、
| /usr/bin/php5 /home/ユーザーID/ドメイン/public_html/test/test.php
以上で終了
コンパネで登録すると
以下のファイルに記述されていた。
/ドメイン/mail/.filter
if ( /^To: .*foo@hoge\.com.*/:h ) { cc "| /usr/bin/php /home/ユーザーID/hoge.com/public_html/test/test.php" }
余談だがXserverのマニュアルに以下のように書いてあった。
コマンドパス使用例
/home/sample/tensou.php と設定 → /home/sample/tensou.php へメールを渡します。
つまり「/usr/bin/php」がいらないのである。
なのでさっそく試してみるが・・・
できなかった・・・。
続き
メール本文を取得して本文を変更する - ちぇ・ゲバ男のメモ