• ブログ
  • Photoshare
  • キーワード
  • ブックマーク
  • ふぉとす
  • 写真
  • ログイン

kaeruspoon

« 風の大陸〈第26部〉聖都 (富士見ファンタジア文庫): 竹河 聖: 本 | 風の大陸 第二十七部 地流 (富士見ファンタジア文庫): 竹河 聖, いのまた むつみ: 本 »
  • RailsとPostfixで受信メールを処理する方法 2008-05-09 21:03:05 Append 466

    Railsで受信メールを処理する方法はけっこう簡単です。HowToReceiveEmailsWithActionMailerに書かれていることがすべてといってもいいでしょう。
    ここではPostfixを使った方法を書いておきます。

    1.Postfixのインストール

    aptitude install postfix
    


    2.受信メールを処理するコードをapp/modelsの下に置く。

      class KaeruMailman < ActionMailer::Base
        def receive(email)
    
        ...ユーザ認証したりメールの内容をDBにインサートしたりといった処理...
    
        end
      end
    


    3./etc/postfix/master.cfの最後に、下記を追加する。

    kaeruspoon-mailman  unix  -       n       n       -       -       pipe
      flags= user=tsukasa argv=/usr/bin/ruby /var/www/rails/kaeruspoon/script/runner -e production KaeruMailman.receive(STDIN.read)
    

    userはRailsを実行しているユーザにします。KaeruMailmanのrecieveはインスタンスメソッドとして定義しますが、ここではクラスメソッドとして書きます。内部でインスタンスが勝手に作成されて、recieveメソッドが呼ばれるのです。

    4./etc/postfix/main.cfの最後に、下記を追加する。

    transport_maps = hash:/etc/postfix/transport
    virtual_mailbox_domains = kaeruspoon.net
    

    受け付ける受信メールのアドレスでユーザ認証を行う場合などは、local_recipient_mapsを無効にしておく必要があります(UNIXユーザ以外のメールアドレスは拒否されるから)。

    local_recipient_maps =
    


    5./etc/postfix/transportに(ファイルがなければ作成して)、下記を追加する。

    kaeruspoon.net    kaeruspoon-mailman:
    

    これでkaeruspoon.netドメインのメールを受信したときは、master.cfで設定したkaeruspoon-mailmanのコマンドを実行するようになります。
    上記設定を有効にするために下記コマンドを実行します。

    postmap /etc/postfix/transport
    


    これで設定完了です。/var/log/mail.infoをチェックして、受信したメールが正しくRailsに渡されているかどうかを確認できます。

    Commentコメント(0) Pageリンク元(1110)
« 風の大陸〈第26部〉聖都 (富士見ファンタジア文庫): 竹河 聖: 本 | 風の大陸 第二十七部 地流 (富士見ファンタジア文庫): 竹河 聖, いのまた むつみ: 本 »

プロフィール

おおいしつかさ

過去の記事

2006年
12月
2007年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2008年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2009年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2010年
1月 2月 3月

キーワード一覧

ActionScript Ajax AmazonResources Erlang git github iPhone javascript Javascript Kaerukeyword kaeruspoon Mac merb milook MiyazakiResistance NSR Objective-C perl Perl Rails Ruby Ruby on Rails RubyKaigi speedpetal subversion Thin Thinkpad tokyobike TRPG twitter ubuntu Ubuntu VAIO VAIO typeZ Waves WordScoop Xen ぐりぐり しろさん カンタロー スノボー ドトール ドライブ バイク プログラミング ユルさん 執筆 宮崎 日本酒 模型 猫 町田 真中洋嗣 自転車
Baner