Leo Bicknell wrote:
In a message written on Wed, Jan 15, 2003 at 10:07:23AM -0500, Bruce Lilly
wrote:
still doesn't comply with RFC 821 (which requires a space character
immediately
preceding the semicolon which delimits the time stamp in a Received header),
I'll note the problem here is that RFC 821, and RFC 822, both define a
Received header. 821 requires the space, 822 does not.
But SMTP servers, which are what the quote specifically applies to, are
bound by *both* specifications, and as 822 does not prohibit a space,
it is unquestionably required.
Now there are some contradictions between 821 and 822, most of which
(but not all) have been eliminated in 2821 / 2822, but that's another
story.
The point is that in spite of a crystal clear specification of what
an SMTP server is supposed to generate for a time stamp line (a.k.a.
Received header field), more than two decades later, it's still the
case (and the discrepancy isn't exactly a closely-guarded secret) that
most SMTP servers are non-compliant. Anybody who thinks that SMTP
server implementations are going to change en masse quickly is deluded.
N.B. this isn't a case of "sendmail got it wrong"; in sendmail the
Received field content is specified in the configuration file, and it's
trivially easy to fix the broken standard configuration files via an edit.
Others, including D. J. "Ego bigger than all outdoors" Bernstein got
it wrong too -- and in Bernstein's qmail, the error is hard-coded in
the source code.