memocon プログラミングのメモや物欲日記、雑記等

phpでメールを受け取り処理をする

2016年10月19日 17時30分

今更感が強いですがやる度に調べてる感じがしたのでメモ。

メールをパースするのにphp-mime-mail-parser/php-mime-mail-parserが便利なのでインストール。

もし下のエラーが発生した場合はエクステンションが足りないのでyum等でインストールする必要があります。

MTA側も設定します。今回はpostfixです。
直接コマンドをaliasに記述することも可能ですが実行ユーザがnobodyになってしまうので一番簡単な実行ユーザを変える方法としてincludeを使用します。
下の例ではnotice宛にメールを受け取ると/path/to/commandの所有者でコマンドが実行されます。

/etc/alias

includeを使用するためにはconfigでincludeを許可する必要があります。

/etc/postfix/main.cfに以下の設定を追加します。

実際のコマンドは/path/to/commandの中に記述します。

php側ではstdinにメール内容が入ってくるのでそれを処理

絵文字とか文字コードとかはかなり制限された内容だったので今回は関係なかったので特にハマる場所無し。