我在虚拟机上运行了一个 Postfix 实例。如果我们每分钟的 SMTP 连接数超过阈值(例如 10),虚拟机提供商就会关闭我们的连接。通常我们一天可能会发送 1000 条消息,所以 10 条是可以的。但是它是一个 Mailman 服务器,所以峰值速率通常超过 10。然后端口 25 会被阻塞一段时间。这会产生积压。重试积压会导致连接数“爆发”,远高于 10。最终结果是,一旦我们被阻止,我们就会一直被阻止,直到有人手动干预。
“显而易见”的修复似乎是确保 postfix 保持在限制范围内 - 即出站连接限制。或者至少将运行的 smtp 传递进程数限制为 1。
有办法吗?
答案1
查看 Postfix 的“policyd”。这应该能够修复您的速率限制。话虽如此,每分钟 10 个 SMTP 连接似乎太低了,我会就此向提供商提出质疑(每小时 600 个可能比较合理)
答案2
您使用智能继电器吗?
main.cf 中有一个参数,称为
default_destination_concurrency_limit = 10
如果您使用智能继电器,它就可能完成这项工作。
另一个选项是在 master.cf 中设置:
smtp unix - - n - 10 smtp
由于每个 smtp 进程只传递一封电子邮件,因此这会将出站连接的数量限制为最多 10 个。