Re: [Jmap] simpler future release & unsend without outbox (was Re: Best vs Good enough - adoption of JMAP)
"Chris Newman" <chris.newman@oracle.com> Thu, 27 April 2017 02:06 UTC
Return-Path: <chris.newman@oracle.com>
X-Original-To: jmap@ietfa.amsl.com
Delivered-To: jmap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B75D612702E for <jmap@ietfa.amsl.com>; Wed, 26 Apr 2017 19:06:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Level:
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-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 WaCW5gyAGg1Q for <jmap@ietfa.amsl.com>; Wed, 26 Apr 2017 19:06:09 -0700 (PDT)
Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) (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 40B5312441E for <jmap@ietf.org>; Wed, 26 Apr 2017 19:06:09 -0700 (PDT)
Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id v3R266JI006496 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 27 Apr 2017 02:06:06 GMT
Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserv0021.oracle.com (8.13.8/8.14.4) with ESMTP id v3R265FJ014331 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 27 Apr 2017 02:06:05 GMT
Received: from abhmp0011.oracle.com (abhmp0011.oracle.com [141.146.116.17]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id v3R265GX005911; Thu, 27 Apr 2017 02:06:05 GMT
Received: from [10.145.239.185] (/10.145.239.185) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 26 Apr 2017 19:06:05 -0700
From: Chris Newman <chris.newman@oracle.com>
To: Neil Jenkins <neilj@fastmail.com>
Cc: jmap@ietf.org
Date: Wed, 26 Apr 2017 19:06:03 -0700
Message-ID: <BCF4ACFF-892C-464E-AAFD-1BB1822C5EF8@oracle.com>
In-Reply-To: <1493248332.1295949.957537688.05443911@webmail.messagingengine.com>
References: <em8b177018-4769-44ea-b033-90bd8155d11b@bodybag> <46F700A6-C2B1-488B-A8B4-6ACD45B03C31@oracle.com> <CFC38D13-0CB2-4ABF-9403-DF0F773314B7@fugue.com> <D35A79C2-3918-4BB7-B97D-D56CA7548DCD@oracle.com> <1493099769.3023399.955193288.6D0312CC@webmail.messagingengine.com> <33553450-82F4-4CB4-8679-C9F52D8A8839@oracle.com> <1493163974.4122214.956244160.6735E49C@webmail.messagingengine.com> <EDCC6149-9222-468E-A17B-DDBA88A52D95@oracle.com> <1493185260.709114.956477904.75CB343B@webmail.messagingengine.com> <B2FD4698-E783-4D15-BA4E-B637A070E6A9@oracle.com> <1493248332.1295949.957537688.05443911@webmail.messagingengine.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Mailer: MailMate (1.9.6r5347)
X-Source-IP: aserv0021.oracle.com [141.146.126.233]
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/i6iYV0hM6KQyRZBmxu0Lwo5_lO8>
Subject: Re: [Jmap] simpler future release & unsend without outbox (was Re: Best vs Good enough - adoption of JMAP)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: JSON Message Access Protocol <jmap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jmap>, <mailto:jmap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap/>
List-Post: <mailto:jmap@ietf.org>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jmap>, <mailto:jmap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 27 Apr 2017 02:06:11 -0000
On 26 Apr 2017, at 16:12, Neil Jenkins wrote: > On Wed, 26 Apr 2017, at 05:54 PM, Chris Newman wrote: >> I'll describe a model that achieves my goal […] >> 1. Get rid of the server-side outbox. We only have a drafts folder >> and a> sent folder. >> >> 2. Add a submission command with envelope (same structure as SMTP >> envelope but JSON syntax and quoting). We pass this command a >> reference> to a draft message in the drafts folder, and if the >> submission >> succeeds,> the message is moved to the sent folder with the envelope >> as an >> annotation. The envelope can include the already-standard >> future release> extension. >> >> 3. Add an unsend command which takes a reference to a message in the >> sent folder. If the unsend succeeds, the message can be moved back >> to> the drafts folder as part of this action. How the server >> correlates a> message in the sent folder with a message in the mail >> queue is an >> implementation detail; the spec need not specify that detail in >> order to> provide the functionality with this model. >> >> 4. Add a way to search/select messages in the Sent folder that may >> be> possible to unsend. > > From a protocol perspective, this model is basically identical to the > outbox model proposed. Well, if you believe that and I don't believe that, then the path to rough consensus is to start with my proposal and refine it until you find it acceptable :-) So let me refine item 4 a bit. It's my theory that JMAP should have a virtual folder / smart folder feature that basically behaves the same way as a real/physical folder to the client. I think JMAP should have that feature regardless of the outcome of this debate (smart/virtual folders is an even more dominant client UI feature than outbox). So let's assume we've added that feature to JMAP. Now if the client wants to present a server-side outbox view based on my proposal, it just creates an "outbox" smart folder. If the client wants to not include the release-in-the-future messages in the Sent folder view, it can create a smart folder to do that. So now the UI model you prefer is simple to implement and it doesn't have the deployment problems a server-side outbox creates. > The only difference is that rather than put the > messages that can still be recalled in a separate "outbox" mailbox, > you > put them in the sent mailbox and require some kind of search. The only > extra component your server will need is something that moves the > message from outbox to sent when it can no longer be recalled; I > seriously don't think this is a huge implementation burden. Well, it's an implementation burden that disappears completely from the system with my proposal. Thus you've made an argument that my proposal is simpler (and thus better) than the magic-server-side-outbox model. > As Brandon > has pointed out, modern mailstores need this kind of "scheduled > events" > plumbing for a number of user-facing features, and it has already been > implemented at scale in a number of systems. > From a user interface perspective, I maintain it is clearer for the > user > for these to be two separate mailboxes, and it also has the advantage > that mailboxes have a message count so MUAs can more easily see if > there > are any messages waiting to be sent still. (I would expect most MUAs > to > hide the outbox when empty.) I happen to like the client-side-outbox UI model, but I believe a server-side-outbox is a confusing UI that violates the least astonishment principle whenever an offline client is used. But my proposal puts no constraints on the UI. If you want to express the server-side-outbox UI model using my proposal, we can refine my proposal to make that easy (I just suggested a way to do that). The magic-outbox-on-server puts a number of constraints on the server design which is one of many reasons I dislike that proposal. If you're still not convinced, I can enumerate more reasons why magic-outbox-on-server is a problem and/or further refine my proposal. - Chris
- Re: [Jmap] Best vs Good enough - adoption of JMAP Ted Lemon
- Re: [Jmap] Best vs Good enough - adoption of JMAP Ted Lemon
- [Jmap] Best vs Good enough - adoption of JMAP Adrien de Croy
- Re: [Jmap] Best vs Good enough - adoption of JMAP Bron Gondwana
- Re: [Jmap] Best vs Good enough - adoption of JMAP Bron Gondwana
- Re: [Jmap] Best vs Good enough - adoption of JMAP Chris Newman
- Re: [Jmap] Best vs Good enough - adoption of JMAP Neil Jenkins
- Re: [Jmap] Best vs Good enough - adoption of JMAP Chris Newman
- Re: [Jmap] Best vs Good enough - adoption of JMAP Adrien de Croy
- Re: [Jmap] Best vs Good enough - adoption of JMAP Ted Lemon
- Re: [Jmap] Best vs Good enough - adoption of JMAP Chris Newman
- Re: [Jmap] Best vs Good enough - adoption of JMAP Neil Jenkins
- Re: [Jmap] Best vs Good enough - adoption of JMAP Ted Lemon
- Re: [Jmap] Best vs Good enough - adoption of JMAP Chris Newman
- Re: [Jmap] Best vs Good enough - adoption of JMAP Ned Freed
- Re: [Jmap] Best vs Good enough - adoption of JMAP Ted Lemon
- Re: [Jmap] Best vs Good enough - adoption of JMAP Bron Gondwana
- Re: [Jmap] Best vs Good enough - adoption of JMAP Chris Newman
- Re: [Jmap] Best vs Good enough - adoption of JMAP Ned Freed
- Re: [Jmap] Best vs Good enough - adoption of JMAP Ned Freed
- Re: [Jmap] simpler future release & unsend withou… Ted Lemon
- [Jmap] simpler future release & unsend without ou… Chris Newman
- Re: [Jmap] Best vs Good enough - adoption of JMAP Neil Jenkins
- Re: [Jmap] Best vs Good enough - adoption of JMAP Brandon Long
- Re: [Jmap] Best vs Good enough - adoption of JMAP Brandon Long
- Re: [Jmap] simpler future release & unsend withou… Chris Newman
- Re: [Jmap] simpler future release & unsend withou… Neil Jenkins
- Re: [Jmap] Best vs Good enough - adoption of JMAP Chris Newman
- Re: [Jmap] simpler future release & unsend withou… Neil Jenkins
- Re: [Jmap] simpler future release & unsend withou… Neil Jenkins
- Re: [Jmap] simpler future release & unsend withou… Adrien de Croy
- Re: [Jmap] simpler future release & unsend withou… Adrien de Croy
- Re: [Jmap] Best vs Good enough - adoption of JMAP Ned Freed
- Re: [Jmap] simpler future release & unsend withou… Ned Freed
- Re: [Jmap] simpler future release & unsend withou… Neil Jenkins
- Re: [Jmap] simpler future release & unsend withou… Chris Newman
- Re: [Jmap] simpler future release & unsend withou… Neil Jenkins
- Re: [Jmap] simpler future release & unsend withou… Ted Lemon
- Re: [Jmap] simpler future release & unsend withou… Chris Newman
- Re: [Jmap] simpler future release & unsend withou… ajay
- Re: [Jmap] simpler future release & unsend withou… xn--l1b0cxc
- Re: [Jmap] simpler future release & unsend withou… xn--l1b0cxc
- Re: [Jmap] simpler future release & unsend withou… Neil Jenkins