15

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?

7 Answers 7

9

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.

6

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

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

2

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.

1
1

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

2
  • 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. Feb 10, 2010 at 17:13
  • For anybody wondering, "smtpd_client_message_rate_limit: The maximal number of message delivery requests that any client is allowed to make to this service per time unit ... The time unit is specified with the anvil_rate_time_unit configuration parameter." and "anvil_rate_time_unit (default: 60s)". So you can specify low rates as well. Nov 19, 2022 at 22:26
0

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.

1
  • Not working even for the same e-mail address. 100 messages to one particular e-mail are sent in about 30 seconds. Feb 10, 2010 at 17:15
0

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.

1
-1

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

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

You must log in to answer this question.

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