Re: [Extra] I-D Action: draft-ietf-extra-sieve-special-use-01.txt

Bron Gondwana <brong@fastmailteam.com> Thu, 19 July 2018 14:14 UTC

Return-Path: <brong@fastmailteam.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 B52C213108F for <extra@ietfa.amsl.com>; Thu, 19 Jul 2018 07:14:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=RNfTu9EC; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=amqI1SCv
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 gh8LTmRUV-d6 for <extra@ietfa.amsl.com>; Thu, 19 Jul 2018 07:14:48 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6DE3F130EB0 for <extra@ietf.org>; Thu, 19 Jul 2018 07:14:48 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id D713221C51; Thu, 19 Jul 2018 10:14:47 -0400 (EDT)
Received: from web1 ([10.202.2.211]) by compute6.internal (MEProxy); Thu, 19 Jul 2018 10:14:47 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=Lf/nL/ W3KLeIPb+58y7u7PvH+zbyeOkJz0xYfG0qKi0=; b=RNfTu9EC3VLKu7YS0E5c4I NfwYIDs8LNzSuj5z2MTj7WjRk21dYyHCq7mKvtmWr/XmlOKbTBaigKRAtHVRTDLZ W0BI6Die0u2JMHigvy6S99tN1sq5taAec+46alSYdqeGiH6IT2OGwTu3NBuk+E2g k0NZyWIILuNqL5EaFps2uDTgE3FyDgEpovkOvtHHKTtguZwbc9Hp+6G84tDAqvf6 uDydA/Wwj6iNBaqQZ61q8IT/IpI6iCZSY2xmzCd86DUDOcf8Jw2nYet3S4pCeJcF H6Q6kXVqwYmXNQ7n7WoRAq1aLNJiAXlulbO+G2ab+GNo3JzybKQcgXdKvX76htmQ ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=Lf/nL/ W3KLeIPb+58y7u7PvH+zbyeOkJz0xYfG0qKi0=; b=amqI1SCvr8fe0oTBG8Mge0 beO8MPivHj8NQ5fB42UeolL8Bk9vCweSgJBXEOFGA2m13jB5e704/jJuv48y5QBi ErHZAZHROkl4kzj3dmu2YVwbEtgaE1OKCqCyaJU/qfSSr4q99eHpQ94+uXQ+1uMi ci+puDID/QbgCmGkrfuTo5IM4wuTPyCjI8ZfioN6Opt9XhZ5TW8Db5T06YltAyGD Z6kM726NV3J6oz0RkD3l91IHtC8a5ToCbBWV6/Q29RNDh3dYYEYMF0uOxrNCnaOv gV83el9+f1nd5JnuDxLh103eUEtj+/runJiNuV9ma/mbfhfHYHiiIkYsKRBpOucA ==
X-ME-Proxy: <xmx:15xQWzmzssn75blhbD51xY7iqTcwSD3eY3JtpRQmQRQB9iT-rBpdIw> <xmx:15xQW3Q7SSajXN6Hz0DFWnxZR2BZHa0nZpzJieIXVVDge7PSbiQCwQ> <xmx:15xQW6WEj0jU_5r0IvywVhrkrqD02kL1nrvZo7MV9tvnjGSalrNu2A> <xmx:15xQWzKfL6waTbIcK5NZrqwq6-GBTeHNx2cb2YZVuQtFP66qyx5asg> <xmx:15xQWy3tC6vm6kiObCzCC-q1Ih2N3gooucW5IddL-Fndls6eZYdPXg> <xmx:15xQW6yXQu5xS9rqGnlTUT2tAUJfkiUH2uXsAVSuwSnWym0iSfzcCg>
X-ME-Sender: <xms:15xQW4Ecd2kdAF_0fRWu7Wr6OAbzua9dF_7xYH6a-QgyVsPi2aoJew>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id 65D7E940DA; Thu, 19 Jul 2018 10:14:47 -0400 (EDT)
Message-Id: <1532009687.619593.1446153224.1D941F59@webmail.messagingengine.com>
From: Bron Gondwana <brong@fastmailteam.com>
To: Ned Freed <ned.freed@mrochek.com>, Stephan Bosch <stephan.bosch@dovecot.fi>
Cc: extra@ietf.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="_----------=_15320096876195931"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-e74bb3a0
References: <151533655607.10858.793231788332492256@ietfa.amsl.com> <ce56fc8f-366a-8e1e-2f00-1ed22da28d15@dovecot.fi> <01QNLYA7BLVQ000051@mauve.mrochek.com> <83ddcadc-b756-91c1-3664-81955cd8f0d8@dovecot.fi> <01QTO3THVZ5I00AI1F@mauve.mrochek.com> <53350c64-d021-7f17-86b8-f1b118791cf5@dovecot.fi> <01QV1PSEOL14000051@mauve.mrochek.com>
In-Reply-To: <01QV1PSEOL14000051@mauve.mrochek.com>
Date: Fri, 20 Jul 2018 00:14:47 +1000
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/dhZ4pJmShEdeB258iYE5NOVsjwc>
Subject: Re: [Extra] I-D Action: draft-ietf-extra-sieve-special-use-01.txt
X-BeenThere: extra@ietf.org
X-Mailman-Version: 2.1.27
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: Thu, 19 Jul 2018 14:15:00 -0000

On Thu, Jul 19, 2018, at 23:40, Ned Freed wrote:
>>> In the next step:
>>> 
>>>    Subsequently, when no particular mailbox is of interest (i.e.,
>>>    the>>>    "specialuse_exists" test has no mailbox argument), the client
>>>    lists>>>    all mailboxes with special-use flags in the two returned personal>>>    namespaces:
>>> 
>>>    C: A02 LIST (SPECIAL-USE) "" ("INBOX/*" "Archive/*") RETURN
>>> (SPECIAL-USE)
>>>    S: * LIST (\Drafts) "/" INBOX/Drafts
>>>    S: * LIST (\Trash) "/" INBOX/Trash
>>>    S: * LIST (\Sent) "/" INBOX/Sent
>>>    S: * LIST (\Archive) "/" Archive/Default
>>> 
>>> It should be noted that this depends on extended list being
>>> available.> 
>> True. I thought LIST-EXTENDED is pretty much required for SPECIAL-
>> USE,>> but the specification doesn't actually mention anything like that. Is>> there another way to obtain information on which mailboxes have a
>> particular special-use flag assigned?
> 
> Yes, according to RFC 6154 section 2 special use attributes MAY
> appear in> non-extended LIST responses. There's an example of this in
> section 5.1.> 
> However, the fact that this is a MAY makes it effectively useless
> since you> can't tell the difference between a case where there are no
> special use> attributes assigned and one where the server has simply elected not
> to include> these attributes in its responses. And it's expected that the
> overwhelming> majority of mailboxes won't have any special use assigned.

MAY fricking shmay.  There are clients out there which flat out expect
that you return the SPECIAL-USE for an unadorned LIST, and customers
report your server as buggy if it doesn't do what their client expects.
> In fact I'd go so far to say that this is a design error. It's
> one thing> to want to support existing implementations of special use
> attributes, it's> another to be so permissive that a compliant implementation - one that> supports SPECIAL-USE but not LIST-EXTENDED - can have no way to
> determine> what the special use mailboxes are actually present.

I'm sure that RFC3501bis (IMAP4rev2) will fix this.

> All that said, all I was asking for here was a note saying this
> depended on> LIST-EXTENDED. Nothing more. (Personally, I don't intend to even
> bother to> check if it's supported.)

That seems very reasonable.

>>> However, I think use of SELECT for this purpose is problematic: It's>>> potentially expensive and worse, may cause undesireable state
>>> changes.>>> Why
>>> not use the MYRIGHTS command to obtain the access rights (and check>>> for "p" or
>>> "i") without having to select the mailbox?
> 
>> Sure, if the ACL capability is available. I can mention that.
>> If it is>> not available, there is really no alternative to using SELECT, right?> 
> Not as far as I know. But again, the problem is that SELECTing
> a mailbox> on behalf of a user can change its state, with all that implies.
> I'd rather> have my implementation fail if ACL isn't present than have a sieve
> operation> cause a state change.

Thanks \Recent.  But at least EXAMINE rather than SELECT should also
mean no change made (in theory).
>>> All of which is roundabout way of saying I now think that we may
>>> want a>>> capability for specialuse_exists that's separate from
>>> "special-use"/:specialuse. Or better still, since we already
>>> have the>>> "mailbox"
>>> capability for "mailbox access stuff", I think we should require the>>> presence
>>> of both "mailbox" and "special-use" capabilities in order to use
>>> specialuse_exists.
> 
>> Can you clarify this point? I don't see how this leads to
>> requiring the>> mailbox extension.
> 
> It doesn't unless we want it to, and I think we want it to. We
> have this> collection of stuff collected under the mailbox extension that lets
> sieve peek> at the state of the mailbox. And here we have an extension that
> consists of two> parts: One extending fileinto and the other adding to things you can
> peek at.> 
> From an MTA implementation perspective, these are very distinct
> things, and> the latter shares a ton of code with the mailbox extension. It
> therefore> makes sense to me to separate the two and link it to the mailbox
> extension.> 
> It's really no different than the way SPECIAL-USE and LIST-EXTENDED
> interact on the IMAP side of things: Both have to be present for the
> RETURN (SPECIAL-USE) stuff to work.
> 
> Ned

--
  Bron Gondwana, CEO, FastMail Pty Ltd
  brong@fastmailteam.com