Ruby on rails 我们如何使用RubyonRails中的actionmailer每小时发送5000封电子邮件?

Ruby on rails 我们如何使用RubyonRails中的actionmailer每小时发送5000封电子邮件?,ruby-on-rails,smtp,actionmailer,mass-emails,Ruby On Rails,Smtp,Actionmailer,Mass Emails,我对ActionMailer有一些问题: Actionmailer如何连接到smtp服务器 如果电子邮件数量超过1000,连接是并发的还是并行的 像facebook那样发送电子邮件(1000个)作为即时电子邮件会对ruby on rails应用程序产生怎样的影响,actionmailer会如何处理 除了ActionMailer之外,还有任何其他解决方案/插件可以从RoR应用程序发送大量电子邮件吗 ------------------------------------------------增加

我对ActionMailer有一些问题:

  • Actionmailer如何连接到smtp服务器

  • 如果电子邮件数量超过1000,连接是并发的还是并行的

  • 像facebook那样发送电子邮件(1000个)作为即时电子邮件会对ruby on rails应用程序产生怎样的影响,actionmailer会如何处理

  • 除了ActionMailer之外,还有任何其他解决方案/插件可以从RoR应用程序发送大量电子邮件吗

  • ------------------------------------------------增加:

    我们需要每15分钟至少发送1000封电子邮件。我们正在使用Notes Domino服务器作为smtp服务器。!这类问题的可能架构是什么。我们已经将电子邮件存储在数据库中,以便以后发送,但需要的是发送方法

  • 如果保留为空,则在配置文件中定义SMTP设置,该文件使用sendMail local

  • 同时发生

  • 多处理器


  • 你也可以发送1000次电子邮件,但它可能会使你的服务器崩溃。通常的做法是创建一个后台作业来发送电子邮件。ActionMailer非常适用于单个电子邮件,但在发送多封电子邮件后会遇到麻烦,因为每封邮件可能需要几秒钟才能完成。这就是为什么我创造了帮助解决这些问题

    市场上的一些服务可帮助您从Rails发送大量电子邮件:

    所有这些都可以通过一个API调用或SMTP事务发送多封邮件。

    1)Actionmailer通过一组参数(包括主机、端口和协议)连接到SMTP服务器

    3) 由于执行了许多同步任务,因此会导致站点运行缓慢

    (二及四)

    Actionmailer有点太慢,无法在负载下发送大量电子邮件,请记住,它是一个同步操作,因此,它并不是您希望在繁忙的站点上经常做的事情

    老实说,你最好不要从你的网站上发送那么多的电子邮件。它并不是真的被设计成这样使用的。如果我必须发送这样的卷,我会考虑在后台做这项工作,类似的东西在这里可以很好地工作,或者找到的许多异步rails邮件程序中的一个可以完成这项工作


    你真正想看到的是你正在努力满足的要求,网站是否绝对有必要负责以同步方式发送邮件?在大多数情况下,这个问题的答案是否定的。如果可以的话,你最好将这类任务推迟到系统的另一部分,尽可能保持站点的精简和集中

    这里为您提供了简单的解决方案。。。 Sidekiq还是Resque

    我强烈推荐Sidekiq,因为它没有服务器密集型的服务器来运行多个worker,只需小心并发问题(确保没有两个worker执行相同的任务并发送重复的电子邮件)

    假设你设置了20个Sidekiq工作人员,每个人应该能够每2-4秒发送一封电子邮件,你可以轻松地看到每分钟300-600封

    在没有像Sidekiq、Resque或DelayedJob这样的背景工作人员的情况下,不要尝试这样做。如果您尝试在应用中发送大量电子邮件,您将冻结整个应用。即使在应用程序中发送激活电子邮件,也会导致不必要的减速问题

    我将有一个工人定期处理排队,另一个工人类处理发送。我们在一个旧的应用程序(pre sidekiq)上使用Resque(可能有6名工作人员?)每5分钟发送大约500封电子邮件,没有任何问题


    你可以随时使用第三方,就像有人提到的那样。Sendgrid很不错。但这不是问题所在,这是你如何简单而轻松地做到这一点

    这肯定是复制品。所以搜索。嘿,这是一个“呃哦”问题
    ;-)。也许让第三方发送者来做,比如SendGrid?并发还是并行?他们不同吗?这个问题应该改名为:“如何使用ActionMailer让5000人恨你”