Re: LMTP-style ESMTP extension (was: [Asrg] pre-rfc thought balloon: ESMTP DATAFIRST)

Tony Finch <dot@dotat.at> Tue, 06 June 2006 19:15 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1Fnh1U-0008Jn-TP; Tue, 06 Jun 2006 15:15:28 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1Fnh1T-0008Ji-1k for asrg@ietf.org; Tue, 06 Jun 2006 15:15:27 -0400
Received: from chiark.greenend.org.uk ([193.201.200.170]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1Fnh1R-0000sG-L0 for asrg@ietf.org; Tue, 06 Jun 2006 15:15:27 -0400
Received: by chiark.greenend.org.uk (Debian Exim 3.36 #1) with local (return-path fanf@chiark.greenend.org.uk) id 1Fnh1R-0004Wx-00; Tue, 06 Jun 2006 20:15:25 +0100
To: hjp-asrg@hjp.at
From: Tony Finch <dot@dotat.at>
Subject: Re: LMTP-style ESMTP extension (was: [Asrg] pre-rfc thought balloon: ESMTP DATAFIRST)
In-Reply-To: <20060606180958.GB20969@teal.hjp.at>
References: <934f64a20606051429w2b18c18dl14bfb92d92d24859@mail.gmail.com> <90b025640606051505r65c39818maa020ff73719329f@mail.gmail.com> <20060605223234.GJ29640@osmium.mv.net> <934f64a20606051620r3342dbd7pb51114a6e4af9423@mail.gmail.com> <20060606005947.GQ29640@osmium.mv.net> <20060606005947.GQ29640@osmium.mv.net>
Message-Id: <E1Fnh1R-0004Wx-00@chiark.greenend.org.uk>
Date: Tue, 06 Jun 2006 20:15:25 +0100
X-Spam-Score: 0.0 (/)
X-Scan-Signature: fb6060cb60c0cea16e3f7219e40a0a81
Cc: asrg@ietf.org
X-BeenThere: asrg@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Anti-Spam Research Group - IRTF <asrg.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/asrg>, <mailto:asrg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/asrg>
List-Post: <mailto:asrg@ietf.org>
List-Help: <mailto:asrg-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/asrg>, <mailto:asrg-request@ietf.org?subject=subscribe>
Errors-To: asrg-bounces@ietf.org

"Peter J. Holzer" <hjp-asrg@hjp.at> wrote:
>
>1) It requires a different greeting from the client (LHLO instead of
>   EHLO). A client cannot detect an LMTP server from the response to
>   EHLO. This doesn't fit into the ESMTP extension model.
>
>2) It changes the meaning of DATA and BDAT. In the ESMTP extension model
>   there is no way for the client to tell the server which extension it
>   supports, so the server cannot change the meaning of standard
>   commands.

Wrong: the client indicates that it wants to use an extension either by
issuing a command defined by the extension or by using the extension's
MAIL or RCPT parameters.

For an LMTP-like extension it would be appropriate to define a MAIL
extension parameter which changes the semantics of the subsequent
DATA command (including variants like BDAT and BURL).

In addition to that I think it would be more tasteful to change LMTP
slightly so that it follows the SMTP one-response-per-command model
more closely. It would also be nice to make per-recipient confirmations
optional if the server configuration doesn't require them (e.g. all
recipients have the same security preferences). That is:

* The SMTP service extension is called "recipient checking after data"

* The EHLO keyword associated with the extension is RECHECK, which has
no parameters.

* There is one new parameter for the MAIL verb, "RECHECK", and the
maximum length of the MAIL command is extended by 8 characters.

* There are no new parameters for the RCPT verb.

* There is one new verb, "RECHECK".

The extension is used as follows:

When the client starts a transaction with MAIL FROM:... RECHECK, the
server MAY respond to some or all of the transaction's RCPT commands
with a "350 Recipient pending" reply. (Other replies to RCPT have the
same semantics as usual.)

If the message data is not accepted by the server (a 4xx or 5xx reply),
the client MUST issue a RSET command. The server SHALL respond to any
pipelined RECHECK commands with a "503 bad sequence of commands" reply.
After the message data has been accepted by the server (a 250 reply),
the transaction is not complete until the client has re-checked all the
pending recipient addresses and then issued a RSET command. The client
MUST issue a RSET command even if there are no pending recipients.

The client re-checks a recipient address by issuing the command
  "RECHECK" SP ("<Postmaster@" domain ">" / "<Postmaster>" / Forward-Path)
                    [SP Rcpt-parameters] CRLF
The parameters MUST be the same as in an earlier RCPT TO: command. If
they do not match, the server SHALL respond with a "503 Bad sequence of
commands" reply. If the server responded to the earlier RCPT command with
a 2xx, 4xx, or 5xx reply, it SHALL respond to the RECHECK command with the
same reply. If the server responded to the earlier RCPT command with a
350 reply, it SHALL respond with a 2xx, 4xx, or 5xx reply as appropriate.

The client MUST re-check all pending recipients and MAY re-check other
recipients. It MAY issue the RECHECK commands in any order. If the
client does not re-check every pending recipient before resetting the
transaction, the server MUST NOT deliver the message to the unchecked
pending recipients.

Tony.
-- 
f.a.n.finch  <dot@dotat.at>  http://dotat.at/
RATTRAY HEAD TO BERWICK ON TWEED: SOUTH 3 OR 4 BECOMING VARIABLE 3 OR LESS.
SHOWERS LATER. MODERATE OR GOOD, OCCASIONALLY POOR LATER. SMOOTH OR SLIGHT.

_______________________________________________
Asrg mailing list
Asrg@ietf.org
https://www1.ietf.org/mailman/listinfo/asrg