ietf-wg-emailcore / emailcore

3 stars 0 forks source link

Syntax of Received header field need to be clarified #74

Closed aamelnikov closed 10 months ago

aamelnikov commented 1 year ago

rfc5322bis includes more generic syntax, but it is a bit misleading.

received = "Received:" [1*received-token / CFWS] ";" date-time CRLF

received-token = word / angle-addr / addr-spec / domain

rfc5321bis includes more specific syntax:

Time-stamp-line = "Received:" FWS Stamp

Stamp = From-domain By-domain Opt-info [CFWS] ";" FWS date-time ; where "date-time" is as defined in RFC 5322 [15] ; but the "obs-" forms, especially two-digit ; years, are prohibited in SMTP and MUST NOT be used.

From-domain = "FROM" FWS Extended-Domain

By-domain = CFWS "BY" FWS Extended-Domain

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] [Additional-Registered-Clauses]

Via = CFWS "VIA" FWS Link

With = CFWS "WITH" FWS Protocol

ID = CFWS "ID" FWS ( Atom / msg-id ) ; msg-id is defined in RFC 5322 [15]

For = CFWS "FOR" FWS ( Path / Mailbox )

Additional-Registered-Clauses = 1* (CFWS Atom FWS String) ; See Section 8.1.4.

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

Addtl-Protocol = Atom ; Additional standard names for protocols are ; registered with the Internet Assigned Numbers ; Authority (IANA) in the "mail parameters" ; registry [11]. SMTP servers SHOULD NOT ; use unregistered names.

Should we have a single definition?

Should we allow for attributes with no values as per rfc5322bis?

Is the order of registered attributes fixed?

aamelnikov commented 1 year ago

Also, John Klensin suggested that rfc5322bis should use the following syntax:

In 3.6.7, say that trace fields are inserted in transport, that they include "Return-path:" and "Received:" and are defined and specified in rfc5321bis. Remove most or all of the additional explanation which, IMO, just adds to the confusion. As far as specifying my preference (in declining order) would be: (2a) as "unspecified in this document; see rfc5321bis" (2b) trace = [return] *(received / optional-trace-field) return = "Return-Path:" unstructured CRLF ;see rfc5321bis received = "Received:" unstructured CRLF ;see rfc5321bis optional-trace-field = field-name ":" unstructured CRLF ; see rfc5321bis

Note that there is no consensus for or against this change at this point.

aamelnikov commented 1 year ago

After analyzing historic uses of Received from ietf-smtp and imapext mailing lists, proposal is to do no changes to rfc5321bis or rfc5322bis.

aamelnikov commented 1 year ago

Additional suggestion to add clarifying text to rfc5322bis, which currently says:

The "Received:" field contains a (possibly empty) list of tokens followed by a semicolon and a date-time specification. Each token must be a word, angle-addr, addr-spec, or a domain. Further restrictions are applied to the syntax of the trace fields by specifications that provide for their use, such as [I-D.ietf-emailcorerfc5321bis].

Suggested addition to the end of the last sentence to clarify:

... defining more specific syntax of the Received header field as used by SMTP.

aamelnikov commented 10 months ago

This was addressed in draft-ietf-emailcore-rfc5322bis-06. Slightly different text was used.