IMAPでGmailを監視して、新着メールがあったらPHPを実行

gmail_watcherとあるシステムがqmailでメールサーバーを構成していて、新着メールをトリガーにPHPを実行していた。

このサーバーを移行するときにメールはGmail(Google Apps)で受け取るようにして、サーバーからはGmailを監視するように変更したときの覚書。

環境: CentOS 6.6, iojs-v1.4.2

ざっと調べた感じだとNode.jsで実装すると簡単そう。

 

inboxが内部で使っているencoding(のiconv-lite)がiso-2022-jpに対応してないので下記エラーが出る。

[Error: Encoding not recognized: 'ISO-2022-JP' (searched as: 'iso2022jp')]

プロジェクト直下にiconvをインストールすると直る
$ npm install iconv --save

 

メッセージ取得後はPHPにまるっとデータを渡したいので、child_process.spawnを使う。

 

作ったのをGitHubで公開した。

config.jsを編集すると新着メールがきたときに実行するコマンドを変更できる。

常駐するにはpm2とか使う。

 

< Related Posts >