$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

debianでメールからperlスクリプトを自動起動する

 メールを受け取ったら自動でperlスクリプトを実行するまでの環境構築のメモ。

postfixのインストール

次のコマンドを実行

sudo aptitude install postfix

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