On Fri, 26 Dec 1997, Georg v.Zezschwitz wrote:
> By now, 2 people suggested to change the Received-Headers as
> the are generated by Exim to make them more compliant to RFC822.
Last time this came up I pointed out that
(a) You can change the format of Received headers by setting the
received_header_text option.
(b) RFC 1123 says
5.2.8 DATA Command: RFC-821 Section 4.1.1
Every receiver-SMTP (not just one that "accepts a message for
relaying or for final delivery" [SMTP:1]) MUST insert a
"Received:" line at the beginning of a message. In this line,
called a "time stamp line" in RFC-821:
* The FROM field SHOULD contain both (1) the name of the
source host as presented in the HELO command and (2) a
domain literal containing the IP address of the source,
determined from the TCP connection.
The same wording is used in the draft of the currently-in-progress
revision to RFC 821. It is not clear what the syntax of that kind of
FROM field should be. I think I raised a query on this with the group
that is discussing the revision, but as far as I recall, there was no
response.
I waited for further comments on this mailing list, but I don't think
there were any until now.
RFC 822 syntax says "FROM domain", but the revised syntax has "word" as
the thing that comes after "token-name". That would mean one could get
away with
Received: from a.c.b.d[1.2.3.4]
that is, avoid whitespace between the domain and the IP address, or one
could use
Received: from "a.b.c.d [1.2.3.4]"
> To make the Received-headers easier to understand and change this
> behaviour I applied the following change to host.c:
I don't like that because it is adding over 10 characters to many common
cases, and as sender_fullhost is used in constructing log lines, it will
increase the size of log files on busy systems. (10 chars per message
for 100,000 messages = an additional 1 megabyte.) Note also that the
first thing that appears after H= in log lines is what is used by
eximstats in its output.
That doesn't mean I'm refusing to change the format of Received: lines,
which could be constructed without using sender_fullhost. I'd just like
to have some views from other people before making such a change.
The simplest change, of course, would be to enclose the IP address in
parentheses, so that you get ([1.2.3.4]) instead of just [1.2.3.4]. If
this were done to sender_fullhost, it would add only 2 bytes per message
to the log. The variations would be
H=a.b.c.d ([1.2.3.4]) Host name verified by reverse lookup; HELO
name is the same as host name (or no HELO).
H=[1.2.3.4] No reverse lookup; no HELO.
H=(a.b.c.d) [1.2.3.4] No reverse lookup; HELO = a.b.c.d.
H=a.b.c.d (x.y.z) ([1.2.3.4]) Reverse lookup gave a.b.c.d; HELO was
x.y.z. I guess the two parenthesized
bits could be amalgamated into one:
H=a.b.c.d (x.y.z [1.2.3.4])
Alternatively, the Received line could be constructed without using
sender_fullhost, in either this way, or in some other style.
What do people think?
--
Philip Hazel University Computing Service,
ph10@??? New Museums Site, Cambridge CB2 3QG,
P.Hazel@??? England. Phone: +44 1223 334714
--
*** Exim information can be found at
http://www.exim.org/ ***