Re: Last Call: SMTP Service Extension for Content Negotiation to Proposed Standard

Gregory Neil Shapiro <gshapiro@sendmail.org> Tue, 02 July 2002 18:54 UTC

Received: from loki.ietf.org (loki [10.27.2.29]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA08098 for <ietf-web-archive@odin.ietf.org>; Tue, 2 Jul 2002 14:54:21 -0400 (EDT)
Received: (from adm@localhost) by loki.ietf.org (8.9.1b+Sun/8.9.1) id OAA26340 for ietf-outbound.10@loki.ietf.org; Tue, 2 Jul 2002 14:54:01 -0400 (EDT)
Received: from ietf.org (odin.ietf.org [10.27.2.28]) by loki.ietf.org (8.9.1b+Sun/8.9.1) with ESMTP id OAA26302 for <ietf-mainout@loki.ietf.org>; Tue, 2 Jul 2002 14:50:39 -0400 (EDT)
Received: by ietf.org (8.9.1a/8.9.1a) id OAA07891 for ietf-mainout; Tue, 2 Jul 2002 14:49:50 -0400 (EDT)
X-Authentication-Warning: ietf.org: majordom set sender to owner-ietf@ietf.org using -f
Received: from horsey.gshapiro.net (root@horsey.gshapiro.net [209.220.147.178]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id OAA07857 for <ietf@ietf.org>; Tue, 2 Jul 2002 14:49:43 -0400 (EDT)
Received: from monkeyboy.gshapiro.net ([209.246.26.36]) by horsey.gshapiro.net (8.12.5.Beta0/8.12.5.Beta0) with ESMTP id g62IoRgG030407 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=OK); Tue, 2 Jul 2002 11:50:29 -0700 (PDT)
Received: from monkeyboy.gshapiro.net (gshapiro@localhost [127.0.0.1]) by monkeyboy.gshapiro.net (8.12.3/8.12.3) with ESMTP id g62IocvR006181 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Tue, 2 Jul 2002 11:50:38 -0700 (PDT) (envelope-from gshapiro@monkeyboy.gshapiro.net)
Received: (from gshapiro@localhost) by monkeyboy.gshapiro.net (8.12.3/8.12.3/Submit) id g62IocjX006178; Tue, 2 Jul 2002 11:50:38 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Message-ID: <15649.62973.894081.566925@monkeyboy.gshapiro.net>
Date: Tue, 02 Jul 2002 11:50:37 -0700
From: Gregory Neil Shapiro <gshapiro@sendmail.org>
To: ietf@ietf.org
CC: ietf-fax@IMC.ORG
Subject: Re: Last Call: SMTP Service Extension for Content Negotiation to Proposed Standard
X-Mailer: VM 7.03 under 21.1 (patch 14) "Cuyahoga Valley" XEmacs Lucid
Content-Transfer-Encoding: 7bit
Sender: owner-ietf@ietf.org
Precedence: bulk
Content-Transfer-Encoding: 7bit
X-Loop: ietf@ietf.org
Content-Transfer-Encoding: 7bit

Some comments regarding draft-ietf-fax-esmtp-conneg-02.txt:

- It became increasingly difficult to understand as the draft inconsistently
  refers to the server as both "server" and "target", at times in the same
  section.  It makes it look like there is a third party ("client",
  "server", and "target").  "server" should be used throughout.

- Section 4.3 states:

     If the target support the CONNEG parameter, but it can not return 
     the recepient's capability temporarily, the target MUST reject the 

"recipient's" is spelled incorrectly.

- Section 4.3 states:

     If the client specifies "CONNEG = OPTIONAL" in the RCPT-TO, the 
     target MUST process the address and message as if the requested 
     CONNEG capabilities had not been specified.

If the server MUST ignore the CONNEG capabilities, then why should the
client even both sending it?  I think this MUST should be a MAY.

- Section 4.3 states:

     Regardless of the value of the parameter, if the target does 
     support the CONNEG parameter, then it MUST issue a 250 reply, 
     followed by the capabilities of the target that is specified by 
     the RCPT-TO address.

I think this should be changed to:

     Regardless of the value of the parameter, if the target does 
     support the CONNEG parameter and the address is acceptable,
     then it MUST issue a 250 reply, followed by the capabilities of
     the target that is specified by the RCPT-TO address.

Note the addition of "and the address is acceptable".  The draft should not
specify that the command "MUST issue a 250 reply" as there may be other
reasons outside of the scope of CONNEG not to do so.

- Section 4.3 states:

     If the SMTP server supports ENHANCEDSTATUSCODES, the response 
     strings for a success are "250-2.1.5 CONNEG" and "250 2.1.5 
     CONNEG". The response strings for indicating a permanent 
     failure are "504-5.3.3 CONNEG" and "504 5.3.3 CONNEG". 
     The response strings for a temporary failure are "404-4.3.3 
     CONNEG" and "404 5.3.3 CONNEG".
                      ^^^^^

That last enhanced status code should be 4.3.3, not 5.3.3.

- Section 5 states:

     Command with "CONNEG":
      "RCPT TO:" ("<Postmaster@" domain ">" / "<Postmaster>"
                   / Forward-Path) (SP "CONNEG =" ("REQUIRED" /
                 "OPTIOANL") CRLF

* Why is postmaster specifically listed in the syntax?
* "OPTIONAL" is spelled wrong in the syntax
* Why are spaces required around the CONNEG, the =, and the REQUIRED or
  OPTIONAL?  In all other ESMTP RCPT extensions, spaces separate
  extensions.  As an implementor, I would prefer "CONNEG=REQUIRED", not
  "CONNEG = REQUIRED".

- Section 5 states:

     Reply:
      ( ("250-" CRLF) *("250-CONNEG" capability CRLF)
        ("250 CONNEG" capability CRLF) )/
      ( ("250-2.1.5" CRLF) 
          *("250-2.1.5 CONNEG" capability CRLF)
           ("250 2.1.5 CONNEG" capability CRLF) )/
      ("504" CRLF) /
      ("504 5.3.3" CRLF) /
      ("404" CRLF) /
      ("404 4.3.3" CRLF) /

The syntax shown for replies does not allow for any text after the SMTP
code.  E.g., this would be illegal according to the draft syntax:

	250-Recipient Ok
	250 CONNEG ....

As the only thing the syntax allows to follow the 250- is a CRLF.
This applies for all of the replies, not just the 250 case.

Note that all of draft examples below break the rules set out by the
syntax for replies.

- Section 6 states:

     C: RCPT TO:<June@ifax1.jp> CONNEG = REQUIRED
     
Again, the spaces make this difficult to parse given that all other ESMTP
arguments will not have spaces between the key and value.

- Section 6 states:

     S: 250-<June@ifax1.jp> recipient ok
     S: 250 CONNEG (&(image-file-structure=TIFF-minimal)
     S: (MRC-mode=0)(color=Binary)(|(&(dpi=204)
     S: (dpi-xyratio=[204/98,204/196]) )(&(dpi=200)
     S: (dpi-xyratio=[200/100,1]) )(&(dpi=400)
     S: (dpi-xyratio=1) ) )(|(image-coding=[MH,MR,MMR])
     S: (&(image-coding=JBIG)(image-coding-constraint=JBIG-T85)
     S: (JBIG-stripe-size=128) ) )(paper-size=[letter,A4,B4])
     S: (ua-media=stationery) )

That makes it look like the CONNEG response spans 8 lines.  If that's the
case, any SMTP client should reject it as it doesn't use proper SMTP
continuation.  This should be:

     S: 250-<June@ifax1.jp> recipient ok
     S: 250-CONNEG (&(image-file-structure=TIFF-minimal)
     S: 250-CONNEG (MRC-mode=0)(color=Binary)(|(&(dpi=204)
     S: 250-CONNEG (dpi-xyratio=[204/98,204/196]) )(&(dpi=200)
     S: 250-CONNEG (dpi-xyratio=[200/100,1]) )(&(dpi=400)
     S: 250-CONNEG (dpi-xyratio=1) ) )(|(image-coding=[MH,MR,MMR])
     S: 250-CONNEG (&(image-coding=JBIG)(image-coding-constraint=JBIG-T85)
     S: 250-CONNEG (JBIG-stripe-size=128) ) )(paper-size=[letter,A4,B4])
     S: 250 CONNEG (ua-media=stationery) )

- Section 6 states:

     An example of succssful RCPT-TO response when CONNEG-capable 
     server supports ENHANCEDSTATUSCODES.

"successful" is spelled incorrectly.

     S: 250-2.1.5<June@ifax1.jp> recipient ok
     S: 250 2.1.5 CONNEG (&(image-file-structure=TIFF-minimal)
     S: (MRC-mode=0)(color=Binary)(|(&(dpi=204)
     S: (dpi-xyratio=[204/98,204/196]) )(&(dpi=200)
     S: (dpi-xyratio=[200/100,1]) )(&(dpi=400)
     S: (dpi-xyratio=1) ) )(|(image-coding=[MH,MR,MMR])
     S: (&(image-coding=JBIG)(image-coding-constraint=JBIG-T85)
     S: (JBIG-stripe-size=128) ) )(paper-size=[letter,A4,B4])
     S: (ua-media=stationery) )

Again, the same comment as above.

- Section 6 states:

     An example of ESMTP sequence with parmanent failure RCPT-TO 
     response. 

"permanent" is spelled incorrectly.

     S: 220 ifax1.jp IFAX
     C: EHLO ifax1.jp
     S: 250-ifax1.jp
     S: 250-DSN
     C: MAIL FROM:<May@ifax2.jp>
     S: 250 <May@ifax2.jp> sender ok
     C: RCPT TO:<June@ifax1.jp> CONNEG = REQUIRED

The comment above should probably indicate that this is a broken client.
The client shouldn't be sending the "CONNEG = REQUIRED" since CONNEG was
not given in reply to the EHLO command.

Also, this is invalid -- the reply to the EHLO command doesn't end the
continuation.  It should be:

     C: EHLO ifax1.jp
     S: 250-ifax1.jp
     S: 250 DSN

Note the DSN line is "250 DSN" instead of "250-DSN" as shown in the
example.

- Section 6 states:

     An example of an ESMTP sequence with temporary failure RCPT-TO 
     response when the value of parameter is "REQUIRED":
...
     C: RCPT TO:<June@ifax1.jp> CONNEG = REQUIRED
     S: 404 <June@ifax1.jp> recipient ok

Should the text for a '404' be 'recipient ok'?  Perhaps, it should be
'conneg temporary failure'.

- Section 7 states:

     On publicatiom of this document by the RFC Editor, the IANA 
     shall register the Content_Negotiation ESMTP extension defined 
     in section 3.

"publication" is spelled incorrectly.

- Section 12 states:

     Copyright (C) The Internet Society (2001).  All Rights
     Reserved.

Should this be updated to include 2002?