Re: [Jmap] simpler future release & unsend without outbox (was Re: Best vs Good enough - adoption of JMAP)
Neil Jenkins <neilj@fastmail.com> Wed, 26 April 2017 23:12 UTC
Return-Path: <neilj@fastmail.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 6EF061294BF for <jmap@ietfa.amsl.com>; Wed, 26 Apr 2017 16:12:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.719
X-Spam-Level:
X-Spam-Status: No, score=-2.719 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmail.com header.b=utZCWXkh; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=Fl4+WXOr
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 oi7t3J3bd_MH for <jmap@ietfa.amsl.com>; Wed, 26 Apr 2017 16:12:14 -0700 (PDT)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D5E13120727 for <jmap@ietf.org>; Wed, 26 Apr 2017 16:12:13 -0700 (PDT)
Received: from betaweb1.internal (betaweb1.nyi.internal [10.202.2.10]) by mailout.nyi.internal (Postfix) with ESMTP id 4907020D52 for <jmap@ietf.org>; Wed, 26 Apr 2017 19:12:13 -0400 (EDT)
Received: from betaweb1 ([::ffff:10.202.2.10]) by betaweb1.internal (MEProxy); Wed, 26 Apr 2017 19:12:13 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= 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=fm1; bh=RtQxZIa11usqSAa+5ZtW88g2Le+AS KZRZBcuRxNuK9c=; b=utZCWXkh7UGodMvzCktpD4xx89RWaBJO0ZE++UQ1S8RiA gQJ1uZbhLP8nG4NrDMF6YvvZD5w6p4AUMU3yRaqP3IjXLSdr3nBHH2ZdE+N0ax2R CUrzF48ouDQgug/HdiwhKY6j8U+K/DmVsQXl+9XQauoJyLq/xGUKYi/M8vSsWPMl OsDDtF3StXtbWknuzTD/sG01JzVCb/HsWoyLq0U+usGPzx+oJ5K4WtzJR/wfj4zJ +IjWSEeDQcpdFXTARnjYz5g0f3yYLE4SHEUONCYIhZeWABFnTtdqfDARRF95lNa0 NRqTMoCbYzxDVbpDPX+VStG0NBhHa4wk9EaFoO4kg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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=fm1; bh=RtQxZI a11usqSAa+5ZtW88g2Le+ASKZRZBcuRxNuK9c=; b=Fl4+WXOrbuUmMaamiDlAw6 WRS1XgcOyxGeKJhaYZhcNKYIDRmXlyiyx/y6jYyyrQQU6tM79XzjmasKBo+iaNoq kklJYwh34hqTRVj85mlpAJpf/dBFAckwWYuABeHgeMrAQu9eGwAtGm76wGpI+ZN0 mAECmF2owLbJWVVB02IcACyXjtzrG/e3RwGzEIE7z8h351LpSiYordPfnZe5HxDQ f0DvDC/mI6DpoMml1SCLwLR0ZrLjL70EcJfY0TR9cGgaY06qr3xdg5RB7ZtWNwk+ oHMXyLXFKO25ruuZLu0hGaV34QVQZWBX/CEmFBET750douHFcRlwXgBFjw6kAzcg ==
X-ME-Sender: <xms:TSkBWcoI_H8GhAvCIJ_B3fT5lVjPS23ZSbfUtV2Nn5Yy78l8GgHRAw>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id 0B855E27D8; Wed, 26 Apr 2017 19:12:13 -0400 (EDT)
Message-Id: <1493248332.1295949.957537688.05443911@webmail.messagingengine.com>
From: Neil Jenkins <neilj@fastmail.com>
To: jmap@ietf.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="_----------=_149324833212959495"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-843b6574
In-Reply-To: <B2FD4698-E783-4D15-BA4E-B637A070E6A9@oracle.com>
Date: Wed, 26 Apr 2017 23:12:12 +0000
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>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/oDLa-VeMUtHN9xKaaACPGFTAJJo>
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: Wed, 26 Apr 2017 23:12:15 -0000
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. 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. 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.) Neil.
- 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