はい。備忘録です。
以下、自己責任でお願いね。
まずは、VPSのコントロールパネルから、目的のメールアドレスを登録。
(これは必要かどうか不明)
/etc/postfix/virtual_alias_maps に次の1行を追加
regist@example.com regist
(メールアドレスを変換の意)
この設定を、
[root@example ~]# postmap /etc/postfix/virtual_alias_maps
で、virtual_alias_maps.db を更新。
で、変換後のregist で受信したメールの内容をプログラムに渡す。
/etc/aliases に次の1行を追加
regist: "|/usr/bin/php /var/www/vhosts/example.com/bin/catch-mail.php"
この記述の後に
[root@example ~]# newaliases
を忘れずに。
最後に
[root@example ~]# /etc/rc.d/init.d/postfix restart
(postfixの再起動)で完了。
【追記】
もっとシンプルに、virtual_alias_maps 内にプログラムへのパイプを書けそうなんだけど、メールアドレスしか記述できないらしい。ここで半日躓いた。
(こちらのチュートリアルがなければ諦めてました。常識なんすかね??)
検証用のcatch-mail.php には、以下のようなプログラムで大丈夫でしょう(手抜きですが)。
#!/usr/bin/php <?php $in = fopen('php://stdin', 'r'); $out = fopen('/var/www/vhosts/example.com/bin/output.txt', 'w'); while ($line = fgets($in)) { fwrite($out, $line); }
なお、catch-mail.php は+x、output.txt は+w のパーミッション変更を忘れずに!