Re: [ietf-smtp] SMTP server reply extensions

Ned Freed <> Fri, 10 April 2020 15:58 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 855743A0440 for <>; Fri, 10 Apr 2020 08:58:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Status: No, score=-2.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id lY4r9z_2ZiWI for <>; Fri, 10 Apr 2020 08:58:55 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 3A15B3A0433 for <>; Fri, 10 Apr 2020 08:58:55 -0700 (PDT)
Received: from by (PMDF V6.1-1 #35243) id <> for; Fri, 10 Apr 2020 08:55:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=201712; t=1586534113; bh=wNkZpHIE/Xud8AvZt/7e3xV0a2lLXhftsO5k9a6udak=; h=Cc:Date:From:Subject:In-reply-to:References:To:From; b=UJjp1XNnYk6ghnHz9NiFB0e6fBL8JsV5pvgAYEdSAEdSUDoyKN2mU8YyI55Xc/hJ9 mS7n97cu05KlPbrE79mwel6GdATsFLndoENYWnlsOVv4Osq2Ymfh2iQV/JrhiVqmsC ENpxEqMc/ipuDrVP9jRwxMIMjiOgV4Bvmg2Tp9tc=
MIME-version: 1.0
Content-transfer-encoding: 7BIT
Content-type: TEXT/PLAIN; CHARSET=us-ascii
Received: from by (PMDF V6.1-1 #35243) id <>; Fri, 10 Apr 2020 08:55:10 -0700 (PDT)
Message-id: <>
Date: Fri, 10 Apr 2020 08:43:51 -0700 (PDT)
From: Ned Freed <>
In-reply-to: "Your message dated Fri, 10 Apr 2020 15:45:45 +0300" <>
References: <> <> <578702286F283486C2F8D7B0@PSB> <>
To: Timo Sirainen <>
Archived-At: <>
Subject: Re: [ietf-smtp] SMTP server reply extensions
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussion of issues related to Simple Mail Transfer Protocol \(SMTP\) \[RFC 821, RFC 2821, RFC 5321\]" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 10 Apr 2020 15:58:57 -0000

I guess I'm missing something pretty fundamental here, because I don't see why
any of this is necessary.

We have a model for extending SMTP/LMTP that includes private extensions:
Advertise the extension in the EHLO/LHO response, then enable the extension
either with a new command or parameter. There's essentially no limit on what an
extension can do, and it certainly includes enabling the use of structured
information in certain replies.

Of course it makes sense to reuse existing structured syntax when possible. As
for reusing existing enhanced status code, I'm really not on board with that -
I think new values are the right way to do it, and that once again we've been
guilty of integer-hoarding. (We really should have reserved a range for private
use, but there are enough values that it's difficult to get excited about

FWIW, we have the same redirect/referral issue in our software when a user has
been moved, but the LMTP server only knows it's the wrong place for a given
recipient. So what we do is signal that fact using a special private reply

As for data deduplication, we do that with store hashes independent of
ownership, so no need for anything at this level.