2

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.

5 Answers 5

6

You could use the deadbeats trick:

main.cf:

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

master.cf:

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

transport.cf:

hotmail.com             deadbeats:
yahoo.com               deadbeats:
earthlink.net           deadbeats:
freemail.com.au         deadbeats:
2

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

2

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

postmap /etc/postfix/transport.cf
1

you can also add in

main.cf

deadbeats_destination_recipient_limit = 5

for having 5 recipients per session

0

I'm pretty sure that rkthr's suggested master.cf 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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .