From line has ()
Jethro R Binks
jethro.binks at strath.ac.uk
Thu Mar 16 14:26:47 GMT 2006
On Fri, 17 Mar 2006, James Gray wrote:
> > > The way I read RFC822 (and 2822) is that if an MTA is going to reject a
> > > message it should do so as early in the transaction as possible. It
> > > should never accept a message it will not deliver. So, if Exchange is
> > > dropping the message after the final "dot+<CR>" due to a malformed or
> > > rejected address, it should have done it during the "MAIL FROM:" or
> > > "RCPT TO:" stage. IOW, I believe this violates the RFC. But hey, it's
> > > Micrsoft - since when to THEY care about published standards?!?
> > That's nonesense, and even if you believed it, it bears no relation to
> > his original question.
> Erm, read RFC2821 specifically section 3.3. (Paraphrasing) Messages
> should be rejected as soon as possible. However, I did misread to OP's
> question, and I accept that this, and my earlier comments, have nothing
> to do with their problem.
You said "I believe this violates the RFC". It doesn't. The RFC advises
that you SHOULD do something a particular way, but does not forbid you
from doing it another way if you have strong reasons for doing so, as per
the terminology of section 2.3. One of these strong reasons might be that
for logging and tracking purposes you want to record more information
about the message content. However the RFC does point out, late in that
section, "Using a "550 mailbox not found" (or equivalent) reply code after
the data are accepted makes it difficult or impossible for the client to
determine which recipients failed."
Another strong reason would be if your site policy states that you may
find some DATA content objectionable (including mangled header content)
and reject on that basis:
"The DATA command can fail at only two points in the protocol exchange:
- If the verb is initially accepted and the 354 reply issued, the
DATA command should fail only if ... or if the server determines
that the message should be rejected for policy or other reasons.
> > It is quite common to defer rejecting an email until right to the end of
> > the SMTP transaction, and required if the reason for rejecting might be
> > related to the actual content of the email, rather than the envelope
> > information.
> Half right. If an MTA is going to reject a message based on the
> envelope info, it should return an error (5xx) after either the MAIL or
> RCPT commands (RFC2821).
It should, but for one reason or another, you may decide you don't want to
do it that way. And as I said, it is not uncommon to do so, and the RFC
does not forbid it if you have good enough reasons for your own
satisfaction (noting the disadvantages the RFC mentions).
> Rejecting based on the body/DATA can ONLY be done after the DATA is
> terminated with "<CRLF>." (again, RFC2821).
Of course. When I said "right to the end of the SMTP transaction", I did
in fact mean "at the end of the DATA phase".
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jethro R Binks
Computing Officer, IT Services
University Of Strathclyde, Glasgow, UK
More information about the MailScanner