ietf-smtp
[Top] [All Lists]

2821bis ABNF diff

2005-09-02 16:06:54

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.



<Prev in Thread] Current Thread [Next in Thread>