Loren Wilton wrote:
Received: from ar39.lsanca2-4.16.241.28.lsanca2.elnk.dsl.genuity.net
([4.16.241.28] helo=watson1)
 by pop-a065d23.pas.sa.earthlink.net with smtp (Exim 3.33 #1)
 id 1DBKRe-0000Kp-00; Tue, 15 Mar 2005 14:23:22 -0800

1) Is "stmp" in lower case valid, or should it have been STMP?
2) Is it valid to have the (Exim etc) stuff between 'stmp' and 'id'?
3) Anything else that may be off the mark?

The robustness principle says that you should be strict in what you send and liberal in what you accept. From that perspective, it's not a strictly conformant header, but its not broken enough for somebody to refuse to parse it.


In answer to your questions:

 1) the spec calls for uppercase

 2) header data in parenthesis is comment data. comments are supposed
    to be ~allowed anywhere that whitespace is allowed (this rule is
    actually documented in RFC2822, which governs header fields). with
    that in mind, yes, it's fine there.

 3) the "helo=" stuff isn't conformant


Here's the BNF notation for the Received header as provided in RFC2821:

| Time-stamp-line = "Received:" FWS Stamp <CRLF>
|
| Stamp = From-domain By-domain Opt-info ";"  FWS date-time
|
|       ; where "date-time" is as defined in [32]
|       ; but the "obs-" forms, especially two-digit
|       ; years, are prohibited in SMTP and MUST NOT be used.
|
| From-domain = "FROM" FWS Extended-Domain CFWS
|
| By-domain = "BY" FWS Extended-Domain CFWS
|
| Extended-Domain = Domain /
|            ( Domain FWS "(" TCP-info ")" ) /
|            ( Address-literal FWS "(" TCP-info ")" )
|
| TCP-info = Address-literal / ( Domain FWS Address-literal )
|       ; Information derived by server from TCP connection
|       ; not client EHLO.
|
| Opt-info = [Via] [With] [ID] [For]
|
| Via = "VIA" FWS Link CFWS
|
| With = "WITH" FWS Protocol CFWS
|
| ID = "ID" FWS String / msg-id CFWS
|
| For = "FOR" FWS 1*( Path / Mailbox ) CFWS
|
| Link = "TCP" / Addtl-Link
| Addtl-Link = Atom
|       ; Additional standard names for links are registered with the
|       ; Internet Assigned Numbers Authority (IANA).  "Via" is
|       ; primarily of value with non-Internet transports.  SMTP
|       ; servers SHOULD NOT use unregistered names.
| Protocol = "ESMTP" / "SMTP" / Attdl-Protocol
| Attdl-Protocol = Atom
|     ; Additional standard names for protocols are registered with the
|     ; Internet Assigned Numbers Authority (IANA).  SMTP servers
|     ; SHOULD NOT use unregistered names.


-- Eric A. Hall http://www.ehsco.com/ Internet Core Protocols http://www.oreilly.com/catalog/coreprot/

Reply via email to