メール受信をトリガーにプログラムを起動する

提供: とある社畜の頭脳整理
移動: 案内検索

メール受信をトリガーにしてプログラムを起動する方法を説明するよ。
ただし、僕が使っているのレンタルサーバーがさくらサーバーだからそれ前提だよ。
いろいろ調べているうちに分かったのだけど、設定できないレンタルサーバーもあるみたいだから注意してね。

「.mailfilter」ファイルの作成

「.mailfilter」ファイルを作成するよ。といっても、ファイルを作成してアップロードではないんだよ。

  1. さくらのコントロールパネルにログインする
  2. 「メールアドレス毎の設定」をクリックする
  3. 設定したいメールアドレスの「ウェブメール」をクリックする
  4. 左ペインの「設定」をクリックする
  5. 「OK」ボタンをクリックする

これで「/home/【ドメイン】/MailBox/【メールボックス名】」ディレクトリに「.mailfilter」ファイルが作成されるよ。

「.mailfilter」ファイルの編集

FTPなどを使ってファイルをダウンロードしてくるよ。
そしたら以下の内容をファイルに追加してね(追加だよ!)

cc "| /usr/local/bin/php -q /home/【ドメイン】/www/…/test.php"

この場合だよ起動するのはPHPだね。
コントロールパネルから保存すると、内容が書きかえられちゃうから注意してね。
ファイルの編集が終わったら上書きアップロードしてね。


ちなみに上の書き方はメールボックスにメールを残す書き方だよ。残したくない場合は以下のように書いてね。

to "| /usr/local/bin/php -q /home/【ドメイン】/www/…/test.php"

起動するプログラムを配置するよ

「.mailfilter」に書いたディレクトリにファイルを配置するよ。
ためしにメールを送信して動くか試してみてね。
いろいろ調べてみると以下のことに注意したほうが良いようなんだ・・・

  • PHPファイルの文字コードはEUC-JP
  • PHPファイルの改行コードはLF
  • アップロードしたときのパーミッションは774

だけど…僕は「UTF-8」で大丈夫だったよ。

余談

この設定をするのにさくらのコントロールパネルにあるファイルマネージャーは残念ながら使えないよ。
「www」以上のディレクトリにしかアクセスできないから、「.mailfilter」が操作できないんだ・・・