Processing incoming emails on Heroku

heroku, ruby-on-rails

Solution

Heroku support running workers using DelayedJob. Workers are resourced just like Dynos (you pay by the hour) and for this you get a dedicated resource to process your emails.

In the past I have used Cron calling a controller in my app. It's pretty effective.

If the hourly limitation is an issue, you can call your app from another location ... I have a cheap Dreamhost account for some of my non-priority sites that I have used as Cron systems.

There are also a number of ping and uptime services that you can use for this purpose as well ... simply pass these services your email controller.

Problem

For my side project kwiqi, I use ActionMailer's 'receive' method to process incoming email messages for tracking my expenses. Heroku doesn't have a local mail server running that same code will not work. One solution I've thought of is to periodically hit a controller action that will pull messages from Gmail. Are there other solutions that are reasonable? Is anyone processing incoming emails in Heroku?

Original source