我对我的邮件服务器日志中的活动有点困惑(地址和目的地为隐私而编辑):
Nov 1 21:00:03 mail postfix/smtp[745742]: Trusted TLS connection established to mx.example.com[192.0.2.1]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Nov 1 21:00:10 mail postfix/smtp[745742]: 0C1551DC073: to=<[email protected]>, relay=mx.example.com[192.0.2.1]:25, delay=7.3, delays=0.01/0.01/0.42/6.9, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 7E42A921A9A25)
Nov 1 21:00:11 mail postfix/smtp[745829]: Trusted TLS connection established to mx.example.com[192.0.2.1]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Nov 1 21:00:18 mail postfix/smtp[745829]: 903371DC08B: host mx.example.com[192.0.2.1] said: 451 4.7.1 Greylisting in action, please come back later (in reply to end of DATA command)
Nov 1 21:00:18 mail postfix/smtp[745829]: Trusted TLS connection established to mx.example.net[192.0.2.2]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Nov 1 21:00:25 mail postfix/smtp[745829]: 903371DC08B: to=<[email protected]>, relay=mx.example.net[192.0.2.2]:25, delay=16, delays=0.01/1.4/7.7/7.2, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as BB99F922EC625)
似乎 postfix 在第二封邮件中收到了灰名单响应,但随后立即重新尝试发送到不同的 MX 记录 ip (@21:00:18)?我误解了这里发生了什么吗?
除了这些例外,所有设置或多或少都是默认设置:
minimal_backoff_time = 180s
maximal_backoff_time = 3h
我想确保我们尊重收件人提供商的响应,但似乎 postfix 在重新尝试交付之前等待了 180 秒,就像我预期的那样。
是的,postfix 尊重灰名单响应.. 但不尊重这封信,因为它不阅读英文状态文本。
建议: 可能不需要更改任何内容 - 其他 MX 确实在几秒钟后接受了您的消息。这种“请等 10 分钟”的游戏并不是每个人都在玩或称之为灰名单。你真的只需要一个额外的连接来证明你操作一个邮件队列(或者无论如何都不关心规则),所以让其他邮件服务器等待比某些信誉数据库查找花费的时间更长并不总是有意义的。
行为说明:
Postfix 不关心具体原因是什么,只是它 在回复 DATA 命令结束时看到了一个临时错误 。 相同的状态代码 (451) 和增强状态代码 (4.7.1) 可能用于许多其他原因,但没有一个清楚地传达:“不要与我或我的其他 MX 交谈”。
在消息被延迟并受规则约束之前,如果任何其他 MX准备好接受该消息
_backoff_time
,postfix 会继续尝试。当前处于活动传递状态的邮件会根据以下两个条件之一自动移至延迟队列:所有当前已知的邮件交换器都已尝试过,但没有一个最终接受(例如代码 250)或永久拒绝(例如代码 550)未完成收件人的邮件
已遇到失败的阈值(队列限制),并推迟了对目的地的进一步交付
如果您希望 postfix 在看到太多交付失败后留出空间并最终推迟未完成的交付,请改用
_destination_rate_delay
and_destination_concurrency_failed_cohort_limit
。