Re: [yam] Ambiguities in RFC 5321

John C Klensin <john-ietf@jck.com> Sat, 21 November 2009 20:56 UTC

Return-Path: <john-ietf@jck.com>
X-Original-To: yam@core3.amsl.com
Delivered-To: yam@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 5313D3A696E for <yam@core3.amsl.com>; Sat, 21 Nov 2009 12:56:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.413
X-Spam-Level:
X-Spam-Status: No, score=-2.413 tagged_above=-999 required=5 tests=[AWL=0.186, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1JhmBIbePCcd for <yam@core3.amsl.com>; Sat, 21 Nov 2009 12:56:38 -0800 (PST)
Received: from bs.jck.com (ns.jck.com [209.187.148.211]) by core3.amsl.com (Postfix) with ESMTP id 44B2E3A6942 for <yam@ietf.org>; Sat, 21 Nov 2009 12:56:38 -0800 (PST)
Received: from [127.0.0.1] (helo=localhost) by bs.jck.com with esmtp (Exim 4.34) id 1NBx0R-000CpT-0d; Sat, 21 Nov 2009 15:56:31 -0500
Date: Sat, 21 Nov 2009 15:56:30 -0500
From: John C Klensin <john-ietf@jck.com>
To: Ned Freed <ned.freed@mrochek.com>, John Levine <johnl@taugh.com>
Message-ID: <44092D098EF88EC660906F80@PST.JCK.COM>
In-Reply-To: <01NGCNIGUF9I0002QL@mauve.mrochek.com>
References: <20091113200701.26026.qmail@simone.iecc.com> <01NGCNIGUF9I0002QL@mauve.mrochek.com>
X-Mailer: Mulberry/4.0.8 (Win32)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Cc: yam@ietf.org
Subject: Re: [yam] Ambiguities in RFC 5321
X-BeenThere: yam@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Yet Another Mail working group discussion list <yam.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/yam>, <mailto:yam-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/yam>
List-Post: <mailto:yam@ietf.org>
List-Help: <mailto:yam-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yam>, <mailto:yam-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 21 Nov 2009 20:56:39 -0000

John,

FWIW, after reviewing my notes, my server config, and the spec
itself, I agree with Ned.  I now remember why we added the 554
language, and it was precisely to permit a server to say,
authoritatively, "no SMTP service here" rather than requiring
the client to wait for a timeout due to nothing listening on the
port.  The latter situation would introduce precisely the
ambiguity you are concerned about --and actually require
retries-- while 554 was expected to be an unambiguous "go away
-- no service" message, not a conditional one.

One can make pragmatic arguments for a different interpretation
based on the assumption that servers identified by different MX
records for the same domain are hopelessly misconfigured.  But
it seems to me that such arguments, even if/when they are
justified, have no place in the standard itself other than as an
extension of the existing language about operational necessities.

I also agree with Ned, and maybe you, that explicitly
documenting 550 for the set of "I don't like you, go away and
don't come back" -- and maybe, for clarity, adding a 4yz code or
comment about one for "I don't like you today, but, if you come
back tomorrow, I might change my mind-- would clarify both the
documentation and the situation.

Much more generally, the inherited ambiguity from long ago that
was clarified in 2821 notwithstanding, I think it is very
important that we try to reaffirm the principle that 5yz codes
imply that the server knows what it is doing and intends to
deliver a "no, and don't try that again because you will get the
same answer" message.  Any variation on "try again later" or
"try some other system" should get a 4yz code, not a 5yz one.

So much for the guy who wrote the spec... he claims jet lag or
at least temporary stupidity.

best,
    john


--On Saturday, November 21, 2009 10:01 -0800 Ned Freed
<ned.freed@mrochek.com> wrote:

>> In the recent draft, I don't see anything one way or the
>> other about dealing with ambiguities in the existing RFC.
>> While we certainly wouldn't want to change the protocol, it
>> looks to me like there are a few places where we could
>> clarify the language and, if need be, noting implementations
>> have interpreted the language other ways.
> 
>> In Section 3.1, a server can offer two greetings to a new
>> connection, 220 or 554.
> 
> That's not what the section says. Rather, it says that two
> possible responses are 220 or 554. Nowhere does it say these
> are the only possibilities.
> 
>> The semantics of the 554 are utterly unclear.
> 
> I disagree with this assertion. 554 is used "to formally
> reject a mail session while still allowing the initial
> connection". I think that's fairly clear, although I wouldn't
> object to adding the later description of 554 as "no SMTP
> service here" to this section.
>...