Postfix throttling for outgoing messages

I need Postfix to send outgoing messages (from local PHP) with a certain rate. Say, one message in 120 seconds. Any messages exceeding this rate should be queued (delayed) and delivered later.

Policyd is not what I'm looking for. I don't need limiting overall number of messages sent. I need a pause (120s) between any two messages beeing sent.

Tried this config, but it's not working:

initial_destination_concurrency = 1
default_destination_concurrency_limit = 1
default_destination_rate_delay = 120
default_destination_recipient_limit = 1
default_process_limit = 1

Any suggestions?


You need to set

default_destination_recipient_limit = 2

instead of 1. Because if set to 1 then the limit will only apply to the same recipient, not domain.


I'd use postfwd. I use it in production for rate limiting servers.

http://postfwd.org/doc.html#examples


You can throttle outbound emails:

default_destination_rate_delay = 1s

Postfix will add a delay between each message to the same receiving domain with a delay of 1 second. The default value is 0s.