Rails中处理发送大量电子邮件的最佳方法是什么?

3

我知道将电子邮件持久化到数据库中,然后让一些定期的作业来处理实际发送。

我知道ar_mailer gem可以做到这一点。

还有其他方法吗?有更好的替代方案吗? 简单地说,在Rails中处理发送多个电子邮件的最佳方法是什么?

3个回答

2

1
除了其他答案外,我想要补充一点:
ar_mailer 可以用于发送“大量”电子邮件,但如果您要发送非常多的电子邮件(例如 Aweber 或 CampaignMonitor,每小时可能有数十万封电子邮件),我不确定 ar_mailer 是否是最理想的选择。原因是它为每个电子邮件添加了一个单独的记录到数据库中。想象一下,如果您是 Aweber,并且客户向他的 10,000 人列表发送电子邮件,那么您只需要创建 10,000 个活动记录对象并将它们全部保存到数据库中。这会很昂贵,包括验证和回调等。现在想象一下,您有 100 个客户,每个客户都有一个包含 10,000 人的列表,他们都在那个小时内发送电子邮件。我认为您的数据库会受到影响,除非您可以消除验证/回调等,并进入更低级别的数据库调用。
另一个选择是将所有排队工作交给 Postfix 或类似的东西。如果 Postfix 在队列中间死亡,您可能无法从 Rails 应用程序内部确定这一点,因此在那一点上它有些解耦,但可能更有效率。顺便说一下,我没有尝试过任何这样的操作,只是在思考。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接