On Sat, Sep 04, 2021 at 08:28:29PM +0300, Evgeniy Berdnikov via Exim-users wrote:
> IMHO, this discussion should be a motive for Exim and Postfix developers
> to add checks for consistency of SMTP status codes in multiline answers.
>
> Inconsistent protocol messages are indicators of software bugs, so they
> should lead to some attempts to work around (if possible) or switch to
> status "communication impossible -- permanent failure".
That's not going to happen in Postfix. The basic philosophy is that
Postfix is the business of routing email messages, not gratuitous RFC
enforcement. The postscreen(8) behaviour observed is not RFC-compliant,
but it is a not a bug, it is a deliberate trade-off among various
imperfect options.
The status code on the last line of a multi-line response is and will be
taken as authoritative, regardless of any other status codes on prior
lines of the response. This has worked well enough for 22+ years.
The one related thing that might be worth changing is the default of:
http://www.postfix.org/postconf.5.html#smtp_skip_5xx_greeting
there used to be Microsoft Exchange servers that erroneously replied
with 5XX greetings under load, if that's no longer the case, we could
accept 5XX greetings as dispositive.
Thus, FWIW, just the like an Exim client that retries the message under
the reported conditions, a Postfix client in its default configuration
would also retry, but for a different reason. It would see the 521
reply, but then treat that as though it were 421 and either try the next
MX host or defer.
--
Viktor.