主要超时后,Postfix不尝试辅助服务器

这感觉应该是之前已经问过,也许我使用了错误的语言,但经过2个小时的search,我无法弄清楚如何解决这个问题。

我在主邮件服务器closures的出站postfix电子邮件队列中有一条消息(日志中的“连接超时”),而postfix 从不尝试次要(或更低优先级的服务器)。

它反复尝试几天(当前configuration),然后最终反弹,没有提及辅助服务器。

我运行的是后缀2.8。

似乎可能与此有关的唯一选项是smtp_skip_quit_response和smtp_skip_5xx_greeting(我确定有更多,但不知道它是什么),但由于没有连接到服务器,没有响应代码,这些设置是正确的我认为(都设置是)。

我想要发生的是,如果连接到主要问题,它会尝试连接到辅助(这听起来很明显,我知道)。

另一项需要注意的是(失败的)主要的Aloggingparsing为几个IP地址(它是一个Alogging,而不是CNAME)。

日志看起来像这样(有很多重复删除):

Mar 2 02:00:04 postfix/qmgr[2672]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active) Mar 2 02:02:34 postfix/smtp[18263]: D78739817D8: to=<[email protected]>, relay=none, delay=294106, delays=293955/0.02/151/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.4]:25: Connection timed out) Mar 2 03:10:04 postfix/qmgr[2672]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active) Mar 2 03:12:35 postfix/smtp[22822]: D78739817D8: to=<[email protected]>, relay=none, delay=298306, delays=298156/0/151/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.161]:25: Connection timed out) Mar 2 04:20:04 postfix/qmgr[2672]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active) Mar 2 04:22:05 postfix/smtp[28734]: D78739817D8: to=<[email protected]>, relay=none, delay=302477, delays=302356/0.01/121/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.152]:25: Connection timed out) ... Mar 3 15:20:03 postfix/qmgr[16791]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active) Mar 3 15:22:34 postfix/smtp[20853]: D78739817D8: to=<[email protected]>, relay=none, delay=428506, delays=428355/0/151/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.167]:25: Connection timed out) Mar 3 16:30:03 postfix/qmgr[16791]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active) Mar 3 16:31:04 postfix/smtp[30310]: D78739817D8: to=<[email protected]>, relay=none, delay=432615, delays=432555/0/60/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.236]:25: Network is unreachable) Mar 3 16:31:04 postfix/qmgr[16791]: D78739817D8: from=<[email protected]>, status=expired, returned to sender Mar 3 16:31:04 postfix/bounce[30772]: D78739817D8: sender non-delivery notification: 3036F14E0002 Mar 3 16:31:04 postfix/qmgr[16791]: D78739817D8: removed 

这让我看着正确的方向,在这个例子中的解决scheme是在main.cf设置smtp_mx_address_limit = 20

为了澄清,域configuration是:

  • 2 MXlogging(费用10和20)。
  • 第一个MXlogging有5个logging。
  • 第二个MXlogging有2个logging。

默认的smtp_mx_session_limit值是5,你会注意到它与主要MXlogging的Alogging数相匹配,所以Postfix永远不会超越前5个IP。 把这个值设置为大于5的值在这个例子中会有所帮助,但是对于我们的configuration,我将把它放在一些更大的数目上,以帮助CDN的数量等等。

希望别人觉得这个有用,因为我无法在其他地方find它!

我想你可能会发现你已经遇到了postfix的一些内部限制,因为后缀列表上的Viktor说:

 ..with a static preference, Postfix may fail deliver mail to a reachable destination, just because enough IPv4 or enough IPv6 addresses are dead. Remember, Postfix tries a limited number of MX addresses per delivery. 

可能的话,您也可能在过去的24小时内成功地将邮件发送到其中一台服务器,Postfix将caching成功的MXlogging。

我会说你有两个select,刷新队列postqueue -f ,这将强制postfix做另一个MX查找,或者为该域设置一个临时传输,使用辅助MXlogging作为传输example.com smtp:secondary.mx.servername