メールを受け取ったら自動でperlスクリプトを実行するまでの環境構築のメモ。
virtualの設定
postfixを複数ドメインで使い分けるには、virtualの設定が必要です。
まず/etc/postfix/main.cfに以下を追記。
virtual_alias_maps = hash:/etc/postfix/virtual
次に/etc/postfix/virtualに以下を追加。この設定をすることで@test.example.com宛のメッセージがtestuserに配送されるようになります。
test.example.com anything @test.example.com testuser
最後にvirtualの反映
sudo postmap /etc/postfix/virtual
aliasesの設定
この後さらにperlスクリプトを実行するにはaliasesの設定をする必要があります。先程のvirtualの設定と合わせると、/etc/aliasesに以下のように追記します。
testuser: "|/usr/local/bin/perl /home/script/email-handle.pl"
そして反映。
sudo newaliases
以上の設定で@test.example.com宛のメッセージが届くと自動的に/home/script/email-handle.plを起動することが出来るようになります。メールの内容は標準入力に入ってくるのでそれをうまく扱ってやれば大丈夫です。
補足 - 実行ユーザの変更
以上の設定のみでは実行ユーザはnobodyになるようです。もしなんらかの理由で実行ユーザを変えたいときは/etc/postfix/main.cfに以下を追記します。
default_privs = username