Wietse Venema wrote: > Bas van Schaik: > >> 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. >> > Server overload is not the only reason for 4xx replies. An SMTP > server mail respond with 4XX for all kinds of reasons. If the client > were to stop delivering mail for any series of 4XX replies then > mail would never get delivered. > I'm sorry, I did not mean "stop delivering" but more some kind of mechanism to detect a server which is not willing to accept anymore. I do realize this is quite a vague criterium, clearly this is not easy to implement.
>> 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. >> > Postfix has always had smtpd process count limits. This is because > Sendmail's load average limits did not work. > Maybe a stupid question: why did the load average limits fail? Surely the smtpd process count limit is a beautiful feature, but couldn't they be used together? -- Bas