如何使用我的 Mac Mini 服务器上的 ActionMailer 加快电子邮件发送速度?

Posted

技术标签:

【中文标题】如何使用我的 Mac Mini 服务器上的 ActionMailer 加快电子邮件发送速度?【英文标题】:How Can I Speed Up The Sending Of Emails Using ActionMailer from my Mac Mini Server? 【发布时间】:2013-03-14 16:31:07 【问题描述】:

我目前正在使用运行 OS X Server 的 Mac Mini Server。该服务器使用 Phusion Passenger 托管多个 Ruby on Rails 应用程序,其中两个使用 PostgreSQL 数据库。其中一个应用程序有一个使用 ActionMailer 发送电子邮件的邮件列表数据库。在撰写本文时,当我们发送时事通讯时,应用程序将发送 224 封电子邮件。

我们在 SMTP 配置中使用了 GoDaddy 电子邮件地址。这些电子邮件只用了五分钟就发送出去了。但是 GoDaddy 每天只允许发送 250 封电子邮件。他们还只允许您一次购买 50 个继电器,最少三个月。我们不确定随着我们的邮件列表的增长,这对我们有多大的帮助。按照我们的增长速度,我们可以在我们已经支付的三个月内将 50 人添加到邮件列表中。我觉得我们应该访问在我们的 Mac Mini 服务器上打开邮件服务器。

在得到 Apple 的一些问题的回答后,我能够让邮件服务器正常工作,我可以在其中发送和接收电子邮件。但是,当我发送相同的电子邮件时,需要 30 分钟而不是 5 分钟。 OS X Server 的文档仍然包含来自 Lion Server 的旧信息,这些信息引用了不再适用于 OS X Server 的服务器管理工​​具。

我希望发送电子邮件的时间可能相同,因为 Rails 应用程序的数据库和邮件服务器在同一台机器上。但是总的来说,我理解在某些情况下使用相同的资源可能会存在一些争议。有什么方法可以加快电子邮件的发送速度?不幸的是,没有为 OS X Server 提供服务器管理工​​具。 OS X Server 的文档在很大程度上毫无价值,因为它们引用了不再存在的 Server Admin Tools。

我已在服务器故障上发布此内容并以不同方式提问。但是在这里我想问一下我是否可以在我的 Rails 应用程序中做一些特定的事情,这可能会使使用 ActionMailer 发送电子邮件更加高效。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我们有类似的情况,我们根据面试结果向求职者发送 100-300 封电子邮件。通过 ActionMailer 发送电子邮件很慢,因为每封电子邮件通常需要几秒钟。

也就是说,发送电子邮件是作业队列的经典用例之一。 similar question provided some helpful answers 但我可以告诉你,我使用 Resque 和 ResqueMailer 并且对结果非常满意。它确实需要建立一个Redis 服务,但这样做相对容易。

【讨论】:

我正在寻找 Redis 来帮助我计划在不久后开始的本地化项目。我相信我在我的开发服务器上成功启动了服务器。我刚刚向我丈夫提到要重新考虑为此设置背景工作。我打算尝试使用使用 PostgreSQL 的 Queue Classic,但由于我的 PostgreSQL 服务器版本与数据库版本不匹配而出现问题。我一定会看看 Reqsque 和 ResqueMailer。我将在这里发布我的结果。非常感谢。 丹,我对您的解决方案还有另一个问题。如果 Redis 服务器由于某种原因没有运行会发生什么?它会尝试使用 ActionMailer 发送电子邮件还是应用程序会发出错误。注意:我刚刚在云中的生产服务器上设置了 Redis。一月份我已经在我们的开发服务器上设置了它。再次感谢! 如果 Redis 没有运行,Resque/ResqueMailer 将会失败。老实说,我不记得它是引发错误还是静默失败。最好只计划监控 Redis 以确保它可用。我们为此使用God。 这是我的假设。在我第一次深入研究设置作业队列之前,我计划在我的 Rails 应用程序中开发和部署一些其他功能。非常感谢您的意见。【参考方案2】:

我已停止在我的 Mac Mini 服务器上使用邮件服务。我无法通过 Apple 技术支持找到解决方案。直到一个月前,我才经历了这一切,当时我们花了将近一个小时才发送电子邮件。我决定寻找其他 SMTP 选项。

我发现了 Mandrill(由 MailChimp 的创始人创建)。它们允许您每月免费发送 12,000 封邮件,然后每 1000 封电子邮件发送最低金额(我认为)。我所要做的就是更改我的 SMTP 配置以使用 Mandrill 并添加几个 TXT DNS 记录,然后我就设置好了。

在我尝试邮件服务之前,我使用 GoDaddy 大约需要 8 分钟来发送大约 250 封电子邮件。我第一次使用 Mandrill 向我的整个邮件列表(近 350 个)发送电子邮件,用时不到三分钟。没有广告或类似的东西。我成功发送了 GoDaddy 和 Mandrill 电子邮件。我已将所有 Rails 应用程序更改为使用 Mandrill SMTP 设置。可用的报告很棒。

Mandrill Web Site

【讨论】:

以上是关于如何使用我的 Mac Mini 服务器上的 ActionMailer 加快电子邮件发送速度?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过Mac或PC重置HomePod mini呢?

Mini-css-extract-plugin - 如何掌握 index.html 上的哈希命名

如何重置你的mac mini解决蓝牙键盘

mac mini连接多台显示器作用

mac mini纯键盘操作连接蓝牙鼠标

Mac mini M1上成功启动Ubuntu