我需要 Postfix 以一定的速率发送传出消息(来自本地 PHP)。比如说,在 120 秒内发送一条消息。任何超过此速率的消息都应排队(延迟)并稍后传递。
Policyd不是我想要的。我不需要限制发送的消息总数。我需要在发送的任何两条消息之间暂停(120 秒)。
试过这个配置,但它不起作用:
initial_destination_concurrency = 1
default_destination_concurrency_limit = 1
default_destination_rate_delay = 120
default_destination_recipient_limit = 1
default_process_limit = 1
有什么建议么?
你需要设置
而不是 1。因为如果设置为 1,则限制将仅适用于同一收件人,而不适用于域。
我会使用postfwd。我在生产中将它用于限速服务器。
http://postfwd.org/doc.html#examples
您可以限制出站电子邮件:
Postfix 会在每条消息到同一个接收域之间添加一个延迟,延迟为 1 秒。默认值为 0s。
当您说上述配置不起作用时,它是不适用于相同的目的地还是不同的目的地?
就建议而言,编写一个开/关 iptables 规则来阻止到端口 25 的传出连接是相当简单的。这将是我的下一个建议。
减慢客户端发送邮件的速度
smtpd_client_connection_rate_limit = 100
smtpd_client_message_rate_limit = 100
smtpd_client_recipient_rate_limit = 200
smtpd_client_new_tls_session_rate_limit = 100
#看一下这个
也许玩一下 qmgr 你可以获得一些结果。
http://www.postfix.org/qmgr.8.html
人们为发送到 yahoo 的电子邮件执行此操作非常普遍。您可以在http://old.nabble.com/Create-Custom-Mail-Queue-td21577217.html#a21577217查看示例配置,并根据需要调整数字。