我对我的邮件服务器日志中的活动有点困惑(为了保护隐私,地址和目的地已被删除):
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 秒才重新尝试投递。
答案1
是的,postfix 尊重灰名单响应..但不尊重信件,因为它不读取英文状态文本。
推荐: 可能不需要改变任何东西——仅仅几秒钟之后另一个 MX 就接受了您的消息。这场比赛“请等待 10 分钟”并不是每个人都玩过或叫过灰名单. 你真的只需要一额外的连接来证明您正在操作邮件队列(或者根本不关心遵守规则),因此让其他邮件服务器等待的时间比某些信誉数据库查找所需的时间更长是没有意义的。
行为解释:
Postfix 并不关心具体原因是什么,它只关心它看到了 暂时错误 回复 DATA 命令结束相同的状态代码 (451) 和增强状态代码 (4.7.1) 可能用于许多其他原因,但它们都没有清楚地传达: “不要跟我或我的其他 MX 说话”。
直到消息延期根据_backoff_time
规则,如果有任何其他 MX已准备好接受该消息。当前处于积极的配送将自动移至延期根据以下两个条件之一进行排队:
所有目前已知的邮件交换器都已尝试过,但没有一个能够最终接受(例如代码 250)或永久拒绝(例如代码 550)未完成收件人的消息
阈值(群组限制) 的故障已经发生,并且目的地的进一步交付被推迟
如果您希望 Postfix 在看到太多投递失败后能够分散注意力并最终推迟未完成的投递,请改用_destination_rate_delay
and _destination_concurrency_failed_cohort_limit
。