Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We have a server that sends our weekly newsletter to subscribers, To prevent people like Hotmail or Yahoo from blocking us due to sending too many simultaneous emails to them, Is there a way we can stagger email, or rate-limit outbound emails from postfix?

Keep in mind, I dont want the mailserver to stop queueing mail or accepting new messages, Simply defer delivery if there are more then 3-4 messages per destination domain/ipaddress, or something similar.

Note: I dont want a Sender Throttle, as described in a similar question, here. I'm looking more for a recipient throttle but haven't had any luck finding out how to do so with PolicyD or Anvil services, and was wondering if anyone else has accomplished such a task.

share|improve this question
up vote 5 down vote accepted

You could use the deadbeats trick:

transport_maps = hash:/etc/postfix/transport
deadbeats_destination_concurrency_limit = 50

deadbeats unix - - n - - smtp -o smtp_connect_timeout=5 -o smtp_helo_timeout=5 smtp_connect_timeout=2             deadbeats:               deadbeats:           deadbeats:         deadbeats:
share|improve this answer

Should read:

deadbeats    unix    -    -    n    -    -    smtp 
    -o smtp_connect_timeout=5 
    -o smtp_helo_timeout=5 
    -o smtp_connect_timeout=2

And you should restart Postfix

share|improve this answer

To supplement rkthkr's post, you will need to run postmap on the transports file (man transport(5))

postmap /etc/postfix/
share|improve this answer

you can also add in

deadbeats_destination_recipient_limit = 5

for having 5 recipients per session

share|improve this answer

I'm pretty sure that rkthr's suggested of

deadbeats unix - - n - - smtp -o smtp_connect_timeout=5 -o smtp_helo_timeout=5 smtp_connect_timeout=2

has the 'smtp_connect_timeout' parameter mistakenly listed twice. If for some reason you wanted to have it listed twice, you would need another '-o' as described in user40991's answer.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.