FYI,
I've started to compare old (2821) vs. new (2821bis -00) ABNF.
For the next draft it would help to get this in a shape for a
validator, one simple idea is to add...
verb = ehlo / mail / rcpt / data / quit /
/ helo / rset / help / vrfy / expn
...somewhere and then replace all corresponding "Syntax" lines
like "RSET" <CRLF> by rset = "RSET" CRLF
Bye, Frank
*** rfc2821.new Fri Sep 2 23:49:48 2005
--- RFC2821.old Fri Sep 2 23:49:34 2005
***************
*** 1,8 ****
! ehlo = "EHLO" SP ( Domain /
! Explained-literal ) CRLF
helo = "HELO" SP Domain CRLF
- Explained-literal = address-literal [string]
! ehlo-ok-rsp = ( "250" SP Domain [ SP ehlo-greet ] CRLF )
! / ( "250-" Domain [ SP ehlo-greet ] CRLF
*( "250-" ehlo-line CRLF )
--- 1,6 ----
! ehlo = "EHLO" SP Domain CRLF
helo = "HELO" SP Domain CRLF
! ehlo-ok-rsp = ( "250" domain [ SP ehlo-greet ] CRLF )
! / ( "250-" domain [ SP ehlo-greet ] CRLF
*( "250-" ehlo-line CRLF )
***************
*** 23,25 ****
! "MAIL FROM:" Reverse-path
[SP Mail-parameters] CRLF
--- 21,23 ----
! "MAIL FROM:" ("<>" / Reverse-Path)
[SP Mail-parameters] CRLF
***************
*** 36,38 ****
! Reverse-path = Path / "<>"
Forward-path = Path
--- 34,36 ----
! Reverse-path = Path
Forward-path = Path
***************
*** 53,56 ****
Argument = Atom
! Domain = (sub-domain 1*("." sub-domain) ["."] ) /
! sub-domain["."]
sub-domain = Let-dig [Ldh-str]
--- 51,53 ----
Argument = Atom
! Domain = (sub-domain 1*("." sub-domain)) / address-literal
sub-domain = Let-dig [Ldh-str]
***************
*** 62,64 ****
! Mailbox = Local-part "@" ( Domain / address-literal )
--- 59,61 ----
! Mailbox = Local-part "@" Domain
***************
*** 103,105 ****
! Greeting = "220 " (Domain / address-literal) [ SP text ] CRLF
Reply-line = Reply-code [ SP text ] CRLF
--- 100,102 ----
! Greeting = "220 " Domain [ SP text ] CRLF
Reply-line = Reply-code [ SP text ] CRLF
***************
*** 110,122 ****
! Stamp = From-domain By-domain Opt-info [CFWS] ";" FWS
date-time
! ; where "date-time" is as defined in RFC2822 [9]
; 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
--- 107,118 ----
! 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
***************
*** 132,141 ****
! Via = CFWS "VIA" FWS Link
! With = CFWS "WITH" FWS Protocol
! ID = CFWS "ID" FWS String / msg-id
! ; msg-id is defined in RFC2822 [9]
! For = CFWS "FOR" FWS 1*( Path / Mailbox )
--- 128,136 ----
! Via = "VIA" FWS Link CFWS
! With = "WITH" FWS Protocol CFWS
! ID = "ID" FWS String / msg-id CFWS
! For = "FOR" FWS 1*( Path / Mailbox ) CFWS
***************
*** 154,157 ****
; registered with the Internet Assigned Numbers
! ; Authority (IANA) in the "mail parameters"
! ; registry. SMTP servers SHOULD NOT use
; unregistered names.
--- 149,151 ----
; registered with the Internet Assigned Numbers
! ; Authority (IANA). SMTP servers SHOULD NOT use
; unregistered names.