Behaviour of _destination_rate_delay in postfix

I have a Postfix 2.5 server configured with a _destination_rate_delay of 12s which should limit deliveries to a particular destination to 5 per minute. On my reading of the documentation, a "destination" is the domain name of a recipient of a message.

My problem is that we are sending emails to three different domains, all of whose MX records point to the same mail server (the domains are for three UK universities), so while I may be able to limit deliveries to each domain, a total of 15 messages per minute could be sent to the remote server, exceeding its limit.

Clearly I could set the _destination_rate_delay to 36s, but I suspect that overall this would result in slower delivery. Is it possible to limit delivery rates by destination server rather than email address or is my reading of the documents incorrect? If not, can anyone suggest an alternative approach?


Got a good answer to this from Victor Duchovni on postfix-users. See http://marc.info/?l=postfix-users&m=129848847630269&w=2. The recommended approach is working for us.


Transcript of email conversation was given below

I have a Postfix 2.5 server configured with a _destination_rate_delay of 12s

Which patch level of 2.5?

which should limit deliveries to a particular destination to 5 per minute.

Provided "destination" means recipient domain or manual transport table "nexthop". If an MX host hosts multiple domains, it may receive that many deliveries a minute for each of the domains.

On my reading of the documentation, a "destination" is the domain name of a recipient of a message.

Yes, except as pre-empted by the transport table. Really it is the SMTP "nexthop", which defaults to the recipient domain.

My problem is that we are sending emails to three different domains, all of whose MX records point to the same mail server (the domains are for three UK universities), so while I may be able to limit deliveries to each domain, a total of 15 messages per minute could be sent to the remote server, exceeding its limit.

A server configured with miniscule message rate limits will suffer the folly of its system administrator. Postfix reacts reasonably gracefully to concurrency controls, but rate controls are evil and in my view one should not support the folly of the fools who implement them.

If the receiving site is not Yahoo (too big to ignore or re-educate), it is best if they learn to turn off damaging policies in order to stop losing legitimate mail. Delaying non-spam is futile, focus on blocking spam, rate limits further degrade the Internet email infrastructure.

Clearly I could set the _destination_rate_delay to 36s, but I suspect that overall this would result in slower delivery. Is it possible to limit delivery rates by destination server rather than email address or is my reading of the documents incorrect? If not, can anyone suggest an alternative approach?

Only by manually specifying transport table entries with a common nexthop for all the domains.