对于我的副项目 kwiqi,我使用 ActionMailer 的 'receive' 方法来处理传入的电子邮件消息以跟踪我的费用。Heroku 没有运行相同代码的本地邮件服务器将无法工作。我想到的一种解决方案是定期触发一个控制器操作,该操作将从 Gmail 中提取邮件。还有其他合理的解决方案吗?有人在 Heroku 中处理收到的电子邮件吗?
4 回答
您可以使用 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/
我知道这有点晚了,但是对于将来可能会发现这很有用的其他人,我们为 Heroku 创建了http:///CloudMailin.com插件,它应该可以帮助您非常轻松地在 Heroku Rails 应用程序上接收电子邮件。
Heroku 支持使用 DelayedJob 运行 worker。工人像 Dynos 一样拥有资源(您按小时付费),为此您可以获得专门的资源来处理您的电子邮件。
过去我曾在我的应用程序中使用 Cron 调用控制器。这很有效。
如果每小时限制是一个问题,您可以从另一个位置调用您的应用程序......我有一个便宜的 Dreamhost 帐户,用于我用作 Cron 系统的一些非优先站点。
您还可以为此目的使用许多 ping 和正常运行时间服务……只需将这些服务传递给您的电子邮件控制器。
Heroku 目前的一个真正限制是它们支持 cron 作业的最快频率是每小时一次。
我建议使用 Gmail 并使用延迟作业作为 cron 的替代方法来设置更合理的频率。在WiseJive上有一个很好的设置教程