I'm not after services that could provide me with fancy fine-grained control like policyd, I don't need per user/domain control, I only want to:

limit maximim number of emails that could be sent trough Postfix mail system per hour, preferably but not necessary excluding domains that Postfix mail system itself handles.

Let's say I want to set limit of 200 messages per hour. Desired behavior is that 201 message holds until one hour period is over in order to be delivered.

I would be really amazed if solution to this could respect my previously set per-domain rate limits:

smtp_destination_concurrency_limit = 1
smtp_destination_rate_delay = 3s
smtp_extra_recipient_limit = 2

EDIT: here are some configuration options that might be related to what I'm looking for:

anvil_rate_time_unit = 120s
smtpd_client_recipient_rate_limit = 4
smtpd_client_message_rate_limit = 4
smtpd_client_connection_count_limit = 1
smtpd_client_connection_rate_limit = 1

This configuration should limit 4 emails per 2 minutes, thus 120 per hour - but I'm not sure if it works.

  • 1
    A very crude approach would be to rate limit outgoing connections using IPtables. – André Borie Jun 28 '16 at 10:05
  • @AndréBorie Would that be feasible? – Miloš Đakonović Jun 28 '16 at 10:41
  • Feasible, yes. But also awful and definitely not the right tool for the job. – André Borie Jun 28 '16 at 10:44
  • 1
    Isn't this a duplicate of: serverfault.com/questions/110919/…? I also don't understand why you think that smtp_destination_rate_delay won't do what you need.... – DictatorBob Jul 8 '16 at 6:44
  • 3
    @DictatorBob smtp_destination_rate_delay applies per domain, AFAIK. – Miloš Đakonović Jul 9 '16 at 6:59

You can configure Postfix to divert all messages to the hold queue, and an external script (which you'll need to write) can monitor this queue and release messages at the desired rate.

| improve this answer | |
  • Sorry but this answer was not helpful. – busythomas Aug 12 at 15:50

Postfix does not have that feature by default, you will have to use external program policyd to enforce that rule. I believe you will find the knowledge you seek in this link: http://ngocquyetlinux.blogspot.com/2013/05/limit-mail-with-policyd.html

| improve this answer | |
  • Thank you, I tried policyd and unfortunately it was causing high server load. I do not recommend Policyd. – busythomas Aug 12 at 15:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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