如何加快从 Mac Mini 服务器发送电子邮件的速度?

如何加快从 Mac Mini 服务器发送电子邮件的速度?

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

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

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

我希望发送电子邮件的时间可能相同,因为 Rails 应用程序的数据库和邮件服务器位于同一台机器上。但是一般来说,我理解在某些情况下使用相同的资源可能会产生一些争用。有什么方法可以加快发送电子邮件的速度吗?不幸的是,OS X Server 尚未提供服务器管理工​​具。OS X Server 的文档大部分都是无用的,因为它们引用的服务器管理工​​具已不再存在。

任何帮助,将不胜感激。

更新时间:2013 年 3 月 15 日上午 10:15 CST

注意:我是邮件服务器的新手。更正一下时间。当我检查 /var/log/mail.log 时,我发现总处理时间约为 41 分钟,而不是 30 分钟。当我检查 Rails 应用程序中的 production.log 时,我看到每封电子邮件都已成功发送。邮件日志确认它们是一次发送一封。

以下是其中一封带有屏蔽数据的电子邮件的日志条目。我还包含了上一封电子邮件成功发送时的最后一条日志语句。

Mar 14 11:06:50 hostname.domain1.com postfix/qmgr[45322]: 4B2C5603D25: removed
Mar 14 11:06:59 hostname.domain1.com postfix/smtpd[99464]: sacl_check: mbr_user_name_to_uuid([email protected]) failed: No such file or directory
Mar 14 11:06:59 hostname.domain1.com postfix/smtpd[99464]: sacl_check: mbr_user_name_to_uuid(@emaildomain.com) failed: No such file or directory
Mar 14 11:06:59 hostname.domain1.com postfix/smtpd[99464]: 28899603D28: client=hostname.domain1.com[208.52.189.83], sasl_method=PLAIN, sasl_username=iosusername
Mar 14 11:06:59 hostname.domain1.com postfix/cleanup[99468]: 28899603D28: message-id=<[email protected]>
Mar 14 11:06:59 hostname.domain1.com postfix/qmgr[45322]: 28899603D28: from=<[email protected]>, size=6545, nrcpt=1 (queue active)
Mar 14 11:06:59 hostname.domain1.com postfix/smtpd[99464]: disconnect from hostname.domain1.com[208.52.189.83]
Mar 14 11:06:59 hostname.domain1.com postfix/smtpd[97748]: connect from localhost[127.0.0.1]
Mar 14 11:06:59 hostname.domain1.com postfix/smtpd[97748]: 6F4DD603D2F: client=localhost[127.0.0.1]
Mar 14 11:06:59 hostname.domain1.com postfix/cleanup[99478]: sacl_check: mbr_user_name_to_uuid([email protected]) failed: No such file or directory
Mar 14 11:06:59 hostname.domain1.com postfix/cleanup[99478]: sacl_check: mbr_user_name_to_uuid(@emaildomain.com) failed: No such file or directory
Mar 14 11:06:59 hostname.domain1.com postfix/cleanup[99478]: 6F4DD603D2F: message-id=<[email protected]>
Mar 14 11:06:59 hostname.domain1.com postfix/smtpd[97748]: disconnect from localhost[127.0.0.1]
Mar 14 11:06:59 hostname.domain1.com postfix/qmgr[45322]: 6F4DD603D2F: from=<[email protected]>, size=7038, nrcpt=1 (queue active)
Mar 14 11:06:59 hostname.domain1.com postfix/smtp[99473]: 28899603D28: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.3, delays=0.01/0/0/0.29, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6F4DD603D2F)
Mar 14 11:06:59 hostname.domain1.com postfix/qmgr[45322]: 28899603D28: removed
Mar 14 11:07:00 hostname.domain1.com postfix/smtp[97741]: 6F4DD603D2F: to=<[email protected]>, relay=mx-eu.mail.am0.yahoodns.net[77.238.177.9]:25, delay=1.1, delays=0/0/0.34/0.79, dsn=2.0.0, status=sent (250 ok dirdel)
Mar 14 11:07:00 hostname.domain1.com postfix/qmgr[45322]: 6F4DD603D2F: removed

更新时间:2013 年 3 月 15 日下午 4:11 CST

我继续检查。我决定使用相同的软件发送 5 封电子邮件,但时间上遇到了问题。它们发送的速度仍然比 GoDaddy 电子邮件帐户慢。我决定查看 sacl_check 消息,其中未找到文件或目录。我检查的每封电子邮件都会出现此消息。我阅读了下面讨论此问题的链接。其中一条评论提到需要在文件 /etc/postfix/main.cf 中进行一些设置。我的电子邮件设置仅适用于本地网络。另一个选择是转发到某个地方。Apple Enterprise Support 建议我这样设置它,因为它只会由我的 Rails 应用程序中的 ActionMailer 用来发送电子邮件。我创建的电子邮件地址不会收到任何电子邮件。我没有修改 /etc/postfix/main.cf。我不确定我需要做哪些修改。永远不会有这样的本地用户需要验证。

https://discussions.apple.com/thread/3241121?start=0&tstart=0

答案1

您需要进行一些故障排除,以查看瓶颈在哪里。首先,消息堆积在哪里:ActionMailer 是否需要 30 分钟才能将消息提供给 postscript(OS X Server 使用的 MTA),postscript 是否需要 30 分钟才能开始发送最后一条消息,或者 postscript 是否需要 30 分钟才能结束发送最后一条消息?这至少能让您知道在哪里可以找到速度变慢的原因。

在追踪此类问题时,需要注意几个具体事项。首先,检查 /var/log/mail.log 以查看 postfix 如何处理邮件。您必须做一些工作来重建每封邮件发生的事情,找到与该邮件相关的日志条目,因为该邮件由 postfix 的各个部分处理,并找出该邮件发生了什么,以及它在接收和发送到目的地之间花费了多少时间。

其次,运行sudo postqueue -p显示 postfix 当前队列中的所有消息,以及(如果适用)尝试发送消息时发生的情况(注意:您的服务器现在将尝试将消息传输到多个不同的目标服务器,其中一些服务器将出现延迟、错误等;一些消息被卡住几分钟、几小时或几天以等待另一端清除,这是完全正常的)。

我想到了一个具体的事情:确保服务器能够快速解析 DNS 名称。如果查找失败(并且在尝试查找某些内容时消息卡住),则可能会给系统带来相当大的延迟。

答案2

与电子邮件有关的大多数“速度”问题归结为以下几点:

  1. 过滤。如果您正在运行 spamassassin 或其他过滤器,请尝试暂时禁用它,看看速度是否会加快。
  2. DNS 问题。确保没有递归 cname 或某些奇怪的事情发生。确保网络内部和网络外部的所有内容都能正确解析。
  3. 检查邮件循环。通常您的 MTA 会在 MTA 日志中告诉您这一点。

相关内容