我知道将电子邮件持久保存到数据库中,然后让一些定期作业处理实际发送。 我知道ar_mailer gem会这样做。
还有其他方法吗?还有更好的选择吗? 简单来说,处理在Rails中发送许多电子邮件的最佳方法是什么?
答案 0 :(得分:2)
ar_mailer是我知道发送多封电子邮件的最佳方式。设置起来非常直观。我会查看official documentation和really good blog post。
D进制
答案 1 :(得分:1)
除了我想添加的其他答案之外:
ar_mailer可以用来发送“很多”电子邮件,但是如果你要发送很多电子邮件(我在想这里像Aweber,或者是CampaignMonitor,那里每小时可能有数十万封电子邮件)我我不确定ar_mailer是否理想。原因是它为每个电子邮件的数据库添加了单独的记录。想象一下,你是Aweber并且有一个客户发送电子邮件给他的10,000人名单。您只需创建10,000个活动记录对象,并将所有10,000个记录对象保存到数据库中。验证和回调等都是昂贵的。现在想象你有100个客户,其中10,000个人的列表都在那个小时发送电子邮件。我认为你的数据库会很痛苦,除非你可以消除验证/回调等,并进入较低级别的数据库调用。另一种选择是将所有排队传递给Postfix或类似的东西。如果Postfix以某种方式在队列中间死亡,你可能无法从你的rails应用程序内部确定这个,所以它在那一点上有点脱钩,但可能更有效率。我没有尝试过任何这个,只是大声思考。
答案 2 :(得分:0)
我们正在卸载长任务,不仅包括电子邮件发送,还包括使用Workling和Starling的其他一些内容(请参阅Railscast了解如何使用)。还有其他选择,Github is using delayed_job。