Re: [Extra] New Version Notification for draft-bosch-sieve-eai-01.txt
Ned Freed <ned.freed@mrochek.com> Wed, 02 June 2021 20:40 UTC
Return-Path: <ned.freed@mrochek.com>
X-Original-To: extra@ietfa.amsl.com
Delivered-To: extra@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id AB6DA3A1A48
for <extra@ietfa.amsl.com>; Wed, 2 Jun 2021 13:40:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
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: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
header.d=mrochek.com
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 UbFEjJhntt37 for <extra@ietfa.amsl.com>;
Wed, 2 Jun 2021 13:40:21 -0700 (PDT)
Received: from mauve.mrochek.com (mauve.mrochek.com [98.153.82.211])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 193C83A1A42
for <extra@ietf.org>; Wed, 2 Jun 2021 13:40:21 -0700 (PDT)
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com
(PMDF V6.1-1 #35243) id <01RZRJ4PRZ5S00IGHV@mauve.mrochek.com> for
extra@ietf.org; Wed, 2 Jun 2021 13:35:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mrochek.com; s=201712;
t=1622666117; bh=RfB8vc85lPlqtUSgO0FLjCBQ4B57ys+Z0yVZxhbNhg8=;
h=Cc:Date:From:Subject:In-reply-to:References:To:From;
b=cMOrLlD7fOvxBcHLFw3vYna3WfUeJP7SKDp05TZXYz5J8Jew8dhO3XD1WQtqVc93j
jd2YtKtjTZzx8FkASYjP9X1/jx/XkZCXgqWke5DPbshDtgNt5a8yIuiczN7cyaS+8l
eMhDrstutXH5jdrgE2Jdk8mlIYAblk4Cenkd8kts=
MIME-version: 1.0
Content-transfer-encoding: 8BIT
Content-type: TEXT/PLAIN; charset=utf-8; Format=flowed
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243)
id <01RZMX49RI1S0085YQ@mauve.mrochek.com>; Wed, 2 Jun 2021 13:35:08 -0700 (PDT)
Cc: Ned Freed <ned.freed@mrochek.com>,
Stephan Bosch <stephan.bosch=40open-xchange.com@dmarc.ietf.org>,
extra <extra@ietf.org>
Message-id: <01RZRJ4GMIBI0085YQ@mauve.mrochek.com>
Date: Wed, 02 Jun 2021 12:41:43 -0700 (PDT)
From: Ned Freed <ned.freed@mrochek.com>
In-reply-to: "Your message dated Wed, 02 Jun 2021 21:28:31 +0200"
<848b0844-4bb3-20d5-f712-0be27a292469@open-xchange.com>
References: <162197041125.31097.10318601097144383125@ietfa.amsl.com>
<cfa2fc35-a68d-16fc-c05f-8fbae2cf07e4@open-xchange.com>
<01RZHH2IBJQ80085YQ@mauve.mrochek.com>
<848b0844-4bb3-20d5-f712-0be27a292469@open-xchange.com>
To: Stephan Bosch <stephan.bosch=40open-xchange.com@dmarc.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/e4i_4nFKhjMKjeYtXU0hRltJJhE>
Subject: Re: [Extra] New Version Notification for
draft-bosch-sieve-eai-01.txt
X-BeenThere: extra@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Email mailstore and eXtensions To Revise or Amend <extra.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/extra>,
<mailto:extra-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/extra/>
List-Post: <mailto:extra@ietf.org>
List-Help: <mailto:extra-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/extra>,
<mailto:extra-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 02 Jun 2021 20:40:26 -0000
> > The ineluctable conclusion here is that an email system that supports both EAI > > and Sieve in a compliant way MUST support EAI in Sieve. This is a compliance > > matter, plain and simple, and cannot be handled as an extension. So the first > > task of this document needs to be to define what this form of compliance means. > > It definitely includes saying that the header and address tests must allow for > > unencoded UTF-8, proper handling of message/global, and probably a bunch of > > other stuff. > Yes, that is all true and I agree. But wouldn't it also be necessary to > know whether the script author is expecting message/global messages? I don't see why. Sieve interpreters by default decode encoded words and translate them to UTF-8, which effectively changes the message format from message/rfc822 to message/global. The one place where UTF-8 can occur that it couldn't previously is in addresses and domains, but since you can already compare UTF-8 strings to addresses and domain in Sieve (they won't match but won't produce an error), and variables can contain UTF-8 values, I'm not seeing a reason why there's any need for an extension to announce this. And perhaps more to the point, what's an interpreter supposed to do with an EAI message when the script says it can't handle it? Downgrade? We've tried twice to define a viable downgrade format, and I can pretty much guarantee that use of either one is a cure that's much worse than the disease. I for one would not even consider implementing such a thing. > The > eai extension would indicate that the script was written with the > possibility of receiving message/global in mind. And therein lies the problem. Given the way Sieve is defined the overwhelming majority of scripts will work fine with EAI messages. (Weren't we clever?) Your proposal, taken to the logical conclusion, will penalize all of those scripts for the sake of a few edge cases. > I haven't read the > relevant RFCs in a while (and not going to right now), but what is > supposed to happen when the server has EAI support but the mail > retrieval agent (IMAP client) does not? You either deny access or downgrade, although in practice I suspect "just send EAI" happens a lot. > I remember something about > downgrade or placeholder messages. Most solutions I'd imagine would be > far from ideal. Yes they are. > The most crude solution could be to make the recipient > server reject message/global outright when it somehow knows the > destination user doesn't have the software installed to read the > messages. Our software doesn't do much of the EAI stuff yet, so I can't > say I have implementation/deployment experience. My point is: forcing > Sieve scripts to handle EAI messages when they were not written with > such messages in mind could pose problems. What to do? I don't know... Well, I *can* speak from experience. Making an MTA EAI-aware in a way that actually provides a somewhat satisfactory experience is a real PITA, because you have to figure out *why* the message was marked as EAI in order to hanle it optimally. IMAP is also difficult because of the downgrade issue. In contrast, converting our core Sieve interpreter to support EAI was easy. It's entirely a matter of how you handle previously illegal 8bit in a few contexts. You probably already have code for that - and if you don't and are passing 8bit through unchanged it will mostly work - so that's where the changes go. > Also, the ManageSieve client would need to know somehow that EAI is > supported by the server. It could connect to IMAP first and find out, > but I think that is not the way to handle this. Of course this could be > a ManageSieve capability then and not a Sieve extension. Again, I don't see why. If there's no EAI extension there's nothing to detect. An smtputf8 extension is another matter, of course. > > But now things get even stickier: A-labels. EAI extends the message > > format to > > allow, among other things, U-Labels in domains, but AFAIK doesn't > > explicitly say > > that A-Labels cannot be used. (Except in the case of domains in trace > > fields, > > and as a recent discussion has shown, it appears this requirement is being > > widely ignored.) > > > > Domains appear in a lot more header fields than addresses, and it would be > > asking a lot of a Sieve implementation to know how to parse them all and > > convert > > A-labels to U-labels. FWIW, I think the right answer is to only perform the > > conversion in the address test, but I could be persuaded otherwise. > I'd say all Sieve bits that compare addresses (address test, vacation > :addresses etc.) or domains should normalize them in several ways, > including the A-label/U-label format. Much as I wish it were otherwise, there's no defined normalization for local-parts, so applying a default normalization may actually produce bogus results. The good news is Sieve supports comparators, and comparators can specify normalization, including on the address test. Not ideal, but given how EAI is defined, I don't know what else could be done. Ned
- [Extra] New Version Notification for draft-bosch-… Stephan Bosch
- Re: [Extra] New Version Notification for draft-bo… Bron Gondwana
- Re: [Extra] New Version Notification for draft-bo… Ned Freed
- Re: [Extra] New Version Notification for draft-bo… John Levine
- Re: [Extra] New Version Notification for draft-bo… Ned Freed
- Re: [Extra] New Version Notification for draft-bo… Stephan Bosch
- Re: [Extra] New Version Notification for draft-bo… Stephan Bosch
- Re: [Extra] New Version Notification for draft-bo… Ned Freed
- Re: [Extra] New Version Notification for draft-bo… Bron Gondwana