希望您能帮助我解决这个问题。
我正在管理一个用于新闻通讯的 Postfix 服务器。最近,一个主要的收件人域更改了他们的策略,每个 smtp 会话/连接只接受一封电子邮件。为了遵守他们的政策,我发现 main.cf 中的以下设置很有用,因为它们涉及电子邮件传递的并发性,尽管它似乎没有帮助。
(我已测试过低至 1 的值)
- 初始_目标_并发
- 默认目标并发限制
- smtp_destination_concurrency_limit
我遇到的错误是:dsn=4.4.2,status=deferred,以及一个链接告诉我每个 SMTP 连接发送一封电子邮件。
Postfix 版本:2.9.6
任何建议都将受到赞赏!
答案1
如果您遇到特定域要求较慢的传输,最简单的方法是设置自定义传输:
放置/etc/postfix/main.cf
这两行(将其命名为您想要的,只要一致使用它即可):
smtp-slowdelivery unix - - n - - smtp
-o syslog_name=smtp-slowdelivery
添加/etc/postfix/main.cf
以下几行:
smtp-slowdelivery_destination_rate_delay = 12s
smtp-slowdelivery_destination_concurrency_limit = 1
smtp-slowdelivery_destination_recipient_limit = 1
smtp-slowdelivery_initial_destination_concurrency=1
将其添加到/etc/postfix/transport
(您可能需要创建)
/\@thatdomain.com$/ smtp-慢速递送:
(替换thatdomain
为您需要减慢交付速度的域)
对文件进行后期映射postmap /etc/postfix/transport
然后告诉 postfix 该文件是一个正则表达式:
添加/etc/postfix/main.cf
:
transport_maps = regexp:/etc/postfix/transport
然后运行postfix reload
然后您应该会在邮件日志中看到通过新传输方式发送的邮件。
答案2
对于其他任何人来说,下面的内容需要放在 /etc/postfix/master.cf 中,而不是 /etc/postfix/main.cf 中
这对于其他人来说可能很明显,但对于不熟悉 Postfix 的人来说,这会导致邮件停留在队列中
smtp-slowdelivery unix - - n - - smtp
-o syslog_name=smtp-slowdelivery