「Postfix でメールを受信したら ActionMailer を叩く」を実現したいとき

OS は CentOS5、Rails のバージョンは 1.2.3 の場合です。
まずは ActionMailer を継承したクラスを作って

ruby script/generate mailer Mailman

受信メソッドを app/model/maiman.rb に追加

class Mailman < ActionMailer::Base
  def receive(email)
    #なんかの処理
  end
end

次に Postfix の設定。ror@domain に送られてくるモノとする。

vi /etc/postfix/virtual
ror@domain    foobar

上記をファイル下部に追加する。

postmap /etc/postfix/virtual

設定を適用する。

vi /etc/aliases
foobar:     "|/usr/local/bin/ruby /RAILS_ROOT/script/runner 'Mailman.receive(STDIN.read)'"

同じくファイル下部にエイリアスを指定する。

newaliases

適用。

vi /etc/postfix/main.cf
default_privs = user_name

上の項目に ruby を実行できるユーザを指定する。僕はこれを設定してなくてつまづきました。

service postfix reload

Twitter で新しいフォロワーが追加された旨のメールが来たらフォローし返すなど、夢が広がりますね。