Rails, Postfix: 受信メール処理の設定方法(Postfix Adminを利用している場合)
あるLinuxマシンでPostfix Adminを運用しているとします。また、同じマシンでRailsアプリケーションも動いています。パスは /var/rails/example/current とします。
ここで、reg@example.jp にメールが届いたら UserMailer.receive に渡す、という処理を行いたい場合、どうすればいいでしょうか。
ただし、example.jp はバーチャルドメインで、デフォルトドメイン名(通常は /etc/mailname に書いてある)は oiax.co.jp とします。
/etc/postfix/main.cfの修正
Postfix Admin を運用しているなら /etc/postfix/main.cf に次のような記述があるはずです。
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
これを次のように直します。
virtual_alias_maps = hash:/etc/postfix/virtual,
mysql:/etc/postfix/mysql_virtual_alias_maps.cf
/etc/aliasesの修正
reg_at_example_dot_jp: "| cd /var/rails/example/current && /usr/local/bin/bundle exec /usr/local/bin/rails runner -e production 'UserMailer.receive STDIN.read'"