Re: [Emailcore] Ticket #5: G.5. Remove or deprecate the work-around from code 552 to 452?

John C Klensin <john-ietf@jck.com> Fri, 12 March 2021 05:22 UTC

Return-Path: <john-ietf@jck.com>
X-Original-To: emailcore@ietfa.amsl.com
Delivered-To: emailcore@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 61ED33A0C20 for <emailcore@ietfa.amsl.com>; Thu, 11 Mar 2021 21:22:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vVU5c_tBmqmz for <emailcore@ietfa.amsl.com>; Thu, 11 Mar 2021 21:22:04 -0800 (PST)
Received: from bsa2.jck.com (ns.jck.com [70.88.254.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6F5143A0C1C for <emailcore@ietf.org>; Thu, 11 Mar 2021 21:22:04 -0800 (PST)
Received: from [198.252.137.10] (helo=PSB) by bsa2.jck.com with esmtp (Exim 4.82 (FreeBSD)) (envelope-from <john-ietf@jck.com>) id 1lKaFP-00064C-9Q for emailcore@ietf.org; Fri, 12 Mar 2021 00:22:03 -0500
Date: Fri, 12 Mar 2021 00:21:57 -0500
From: John C Klensin <john-ietf@jck.com>
To: emailcore@ietf.org
Message-ID: <420176B328E2416BF3351C95@PSB>
In-Reply-To: <6FC2E8E6-334A-4C4B-9FB6-A0F2805C4A31@dukhovni.org>
References: <ca851fda-63ac-8739-c3eb-bde725aa25f3@isode.com> <c188413b-9337-40d8-8062-9c0f58f6cd98@www.fastmail.com> <CAHej_8kHwEOmq5bf49=Tt6ZEVkuidMhy5s4XPu7JC+k22qraZg@mail.gmail.com> <CAHej_8ma-kDkVh3Oj11R5Fn6BbwJsWfFpx0Zqv61fPL35CJNUA@mail.gmail.c om> <0F2370D0-D04C-45A1-A5A1-8FF1F174FFE5@dukhovni.org> <CAHej_8=deJU1CW2AzDBu5ji3Uir+_zF6Gp59Z-hHRmRipz8Osw@mail.gmail.com> <9A7BDB22F3A0396EF24BF91D@PSB> <397cc52c-5533-12a2-6ca2-e46f5987105c@wizmail.org> <F57F0BCCE67A6D1CE8BC3157@PSB> <6FC2E8E6-334A-4C4B-9FB6-A0F2805C4A31@dukhovni.org>
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
X-SA-Exim-Connect-IP: 198.252.137.10
X-SA-Exim-Mail-From: john-ietf@jck.com
X-SA-Exim-Scanned: No (on bsa2.jck.com); SAEximRunCond expanded to false
Archived-At: <https://mailarchive.ietf.org/arch/msg/emailcore/qGGZSSMhz1stTp3s1tnmA7mtDes>
Subject: Re: [Emailcore] Ticket #5: G.5. Remove or deprecate the work-around from code 552 to 452?
X-BeenThere: emailcore@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: EMAILCORE proposed working group list <emailcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/emailcore>, <mailto:emailcore-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/emailcore/>
List-Post: <mailto:emailcore@ietf.org>
List-Help: <mailto:emailcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/emailcore>, <mailto:emailcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Mar 2021 05:22:06 -0000

(top post)

Victor,

Thanks.  I'm now fairly sure I understand what you are saying.
It leads to another question,  mostly just to clarify the
implications of what you are suggesting.  We know there isn't
much precision in the second and third digits of response codes,
with the overloading of 552 as an example.  It is also the
reason we have RFC 3463 and its updates for when the server
wants to supply fine-grained information.

If SMTP clients are not paying attention to those codes anyway,
we could save many pages of 5321bis by tearing all the theory
and details of the specific three-digit codes out, specifying
that servers MAY reply with the traditional codes if they want
to but otherwise can just send x99 or some such thing and, if
they feel like being informative should just use extended codes
of the RFC 3463 variety, which actually do provide information.

Would you suggest that and, if not, why not?   Or, put
differently, where is the stopping point between your "what dogs
hear" model and doing that?

   john




--On Friday, March 12, 2021 00:16 -0200 Viktor Dukhovni
<ietf-dane@dukhovni.org> wrote:

> 
> 
>> On Mar 11, 2021, at 11:13 PM, John C Klensin <john@jck.com>
>> wrote:
>> 
>>  [...]
>>  MAIL FROM:<foo@example.net>
>>  250 ...
>>  RCPT TO:<bar1@example.com>
>>  250 ...
>>  RCPT TO:<bar2@example.com>
>>  250 ...
>>  RCPT TO:<bar3@example.com>
>>  250 ...
>>  [...]
>>  RCPT TO:<bar101@example.com>
>>  552 ...
>> 
>> Now, upon getting that first 552, does EXIM
> 
> It is time to introduce an analogy to a famous Gary Larson THE
> FAR SIDE cartoon, "What dogs hear":
> 
> 	https://www.flickr.com/photos/sluggerotoole/153603564
> 
> The server may yell:
> 
>    ...
>    250 <bar99@example.com> at your service
>    250 <bar100@example.com> at your service
>    552 <bar101@example.com> too many recipients.
>    552 <bar102@example.com> too many recipients.
>    552 <bar103@example.com> too many recipients.
>    ...
> 
> But all the sending client hears is:
> 
>    ...
>    2.. ...
>    2.. ...
>    5.. ...
>    5.. ...
>    5.. ...
>    ...
> 
> the client will stash away the full error code and text for
> inclusion in the bounce, just in case some user or postmaster
> can make some sense of it, but otherwise all those carefully
> specified digits in the SMTP RFCs play no role whatsoever.
> 
> Servers are far too likely to send some random 5XX code that
> does not mean exactly what the RFC intends it to mean, and in
> any case the last two digits make no difference, the command
> is either accepted, soft-failed or rejected permanently, and
> the first digit had better signal that correctly, the rest
> is irrelevant forensic information for whoever might care
> to read the tea leaves.
> 
> 
>> (1) Assume it is really like a 550, i.e., that
>> <bar101@example.com> is, at least for traffic coming from
>> <foo@example.net>, a more or less permanently unavailable or
>> non-existent address, continue with other addresses, but never
>> retry <bar101@example.com> and basically tell whomever or
>> whatever you got the message from that it is undeliverable for
>> that address.
> 
> This of course, and ditto with Postfix, Sendmail, or any other
> mainstream MTA you're like to run across.
> 
> 
>> If so, continue that "no retry" behavior for
>> <bar102@example.com> and the (potentially) hundreds of
>> addresses that follow.
> 
> Sure, but any mainstream MTA will not send 100's of addresses
> in a single envelope to strangers, since there's no reason to
> expect the remote peer to be willing to accept more than 100
> recipients, and by the time the message transaction has been
> amortised over 100 recipients most of the benefit of batching
> has been achieved.
> 
> Also list managers typically send mail to one recipient at a
> time (VERP), and people rarely send mail to more than 100
> readers, so larges envelopes beyond first O(100) don't have
> any measurable positive impact on MTA throughput.
> 
>> If one does not follow the advice about treating 552 as if
>> were 452 and basically ignores Section 4.5.3.1.10 (since, wrt
>> 552, it offers no alternate interpretation), I can justify
>> any of the above on the basis of text I can find in 5321.  I
>> may be missing something (wouldn't be the first time, even
>> this week), but that looks like it.
> 
> Any such justification is divorced from the "What dogs hear"
> reality, did the server say "2..", "4.." or "5.."? 
> 
>> So what does exim actually do?
> 
> Naturally, treats the "2XX" recipients as delievered (assuming
> DATA or BDAT LAST was accepted), retries the "4XX" recipients
> separately, and bounces the "5XX" recipients.  That's the only
> correct client behaviour.
> 
>> For everyone else: is there any desire to narrow the options
>> in 5321bis so that guidance is given as to which of the above
>> options is acceptable?
> 
> Regardless of what the RFC says, client MTAs will continue to
> be dogs.  The RFC can align with this reality or live in some
> make believe alternative universe.
> 
> -- 
> 	Viktor.