5


4

Herokuでの受信メールの処理

http://kwiqi.heroku.com [side project kwiqi]の場合、ActionMailerの 'receive’メソッドを使用して、経費を追跡するために受信メールメッセージを処理します。 Herokuには、同じコードを実行するローカルメールサーバーがありません。 私が考えた解決策の1つは、Gmailからメッセージをプルするコントローラーアクションを定期的に実行することです。 合理的な他のソリューションはありますか? Herokuで受信メールを処理する人はいますか?

4 Answer


12


sendgridアドオンとその解析API(http://wiki.sendgrid.com/doku.php?id=parse_api)を使用できます。 これを行う方法に関する短いチュートリアルをここに作成しました:http://nanceskitchen.com/2010/02/21/accept-incoming-emails-into-a-heroku-app-using-sendgrid/


7


これは少し遅れることを知っていますが、将来これが役立つと思う人のために、Heroku Railsアプリでメールを本当に簡単に受信できるようにするために、Heroku用のhttp:///CloudMailin.comアドオンを作成しました。


4


Herokuは、DelayedJobを使用したワーカーの実行をサポートしています。 労働者にはDynosと同じようにリソースが割り当てられ(時間単位で支払います)、このためにメールを処理するための専用リソースが提供されます。

過去に、アプリでコントローラーを呼び出すCronを使用しました。 それはかなり効果的です。

1時間ごとの制限が問題である場合は、別の場所からアプリを呼び出すことができます…​ Cronシステムとして使用した非優先サイトのいくつかの安価なDreamhostアカウントを持っています。

また、この目的に使用できるpingおよびアップタイムサービスも多数あります…​ これらのサービスをメールコントローラーに渡すだけです。


2


現在、Herokuの本当の制限は、cronジョブをサポートする最も速い頻度が1時間ごとであることです。

Gmailを使用し、cronの代わりに遅延ジョブを使用して、より合理的な頻度を設定することをお勧めします。 これの設定に関する優れたチュートリアルがhttp://www.wisejive.com/2009/08/heroku-and-jobs-on-timer.html[WiseJive]にあります。