Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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?

share|improve this question

6 Answers 6

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.

share|improve this answer

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

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

share|improve this answer

Slow down clients sending mail too fast

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

#

check this out

share|improve this answer
    
Won't work. I need a very low rate. Something like this: blah_blah_rate_limit = 0.01 Seems like commands you suggest are for incoming mail, not outgoing. –  Sergey Kovalev Feb 10 '10 at 17:13

Maybe playing a bit with qmgr you could obtain some results.

http://www.postfix.org/qmgr.8.html

share|improve this answer

It's really common for people to do this for email going to yahoo. You can look at an example configuration at http://old.nabble.com/Create-Custom-Mail-Queue-td21577217.html#a21577217 , and tweak the numbers as you need.

share|improve this answer

When you say that the above config is not working, is it not working to the same destination or to different destinations?

As far as a suggestion, it would be fairly trivial to script an on/off iptables rule to block outgoing connections to port 25. That would be my next suggestion.

share|improve this answer
    
Not working even for the same e-mail address. 100 messages to one particular e-mail are sent in about 30 seconds. –  Sergey Kovalev Feb 10 '10 at 17:15

Your Answer

 
discard

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.