Re: [EXIM] Received-Format not compliant to RFC 822?

Startseite
Nachricht löschen
Nachricht beantworten
Autor: Philip Hazel
Datum:  
To: Georg v.Zezschwitz
CC: exim-users, service
Betreff: Re: [EXIM] Received-Format not compliant to RFC 822?
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/ ***