IMAPでGmailを監視して、新着メールがあったらPHPを実行
とあるシステムが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 >