Hi all,

I have two company mailservers, both running Postfix. One of them is
"public" (accessible from the internet) and the other is used for
internal purposes only (i.e.: sending/recieving internal mail and
sending mail to the internet via the public mailserver).

The public mailserver is (of course) configured to scan for spam and
viruses and does have rate limitations (smtpd_client_message_rate_limit
and smtpd_client_connection_count_limit) to avoid getting drowned in
mail from a single server.

The internal mailserver sometimes sends a large batch of mail to the
public mailserver, this is where it gets nasty. The public mailserver
applies the rate limits and starts to tempfail the mail from the
internal server. This is /exactly/ what I want the public mailserver to
do (I don't want to use the smtpd_client_event_limit_exceptions option),
but the internal mailserver keeps trying and trying.

Eventually, all mail from the internal server gets through and other
mail traveling through the public mailserver does not get affected by
large delays. However, I think the internal mailserver should stop
processing the large batch of mail as soon as it notices that the public
mailserver started tempfailing on it. That would save both mailservers a
lot of work and would speed up retrying other queued mail.

I couldn't find such an option in the postconf(5) manpages, nor could I
find it on the internet. Is there a way to achieve this behavior?

Furthermore I'm wondering if it is possible to tell Postfix to start
tempfailing incoming messages when the server load exceeds some value?
Of course it is possible to implement a hard-limit on the number of
smtpd-processes, but that could cause the server to start idling.

Regards,

  Bas

Reply via email to