Quoting from Matthias Andree's mail on Mon, Sep 09, 2002 at 12:15:04PM +0200:
DATA must not yield 550, but only 354, 451, 503, 554. (See
RFC-2821). After the CRLF.CRLF that follows up on the "DATA" "354" chat,
the only valid reply codes are 250, 451, 452, 552, 554. (Again, see
RFC-2821). In real life, at least Postfix will return 550 after
CRLF.CRLF if body_checks or header_checks trigger.
http://www.faqs.org/rfcs/rfc2821.html
In fact, I had read this before sending the patch. However, I now
realise that my patch was incorrect because of the delayed checks you
have mentioned below. Delayed checks do not seem to be supported by
rfc2821 though (if my interpretation is correct).
My interpretation of that is that the SMTP response is context
sensitive. A 550 on a MAIL FROM: (reverse-path rejected) cannot be
equated to a 550 on an RCPT TO: (user unknown). Using one antispam
policy in all contexts is still incorrect.
The sane approach is to empty the default antispam list. Before 6.0.0 is
a good time, because people expect major changes on a 5.X -> 6.0 upgrade.
Undoubtedly.
Sunil Shetye.