Re: [Jmap] simpler future release & unsend without outbox (was Re: Best vs Good enough - adoption of JMAP)

Ned Freed <ned.freed@mrochek.com> Thu, 27 April 2017 15:50 UTC

Return-Path: <ned.freed@mrochek.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 49E4F129AD4 for <jmap@ietfa.amsl.com>; Thu, 27 Apr 2017 08:50:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.003
X-Spam-Level:
X-Spam-Status: No, score=-2.003 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-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 Nb-N6QOc-IQY for <jmap@ietfa.amsl.com>; Thu, 27 Apr 2017 08:50:43 -0700 (PDT)
Received: from mauve.mrochek.com (mauve.mrochek.com [68.183.62.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 2D756129AAA for <jmap@ietf.org>; Thu, 27 Apr 2017 08:49:03 -0700 (PDT)
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01QDNYPJNTKW009F4S@mauve.mrochek.com> for jmap@ietf.org; Thu, 27 Apr 2017 08:44:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mrochek.com; s=mauve; t=1493307839; bh=f5Ubc4++yVBQmbZ0L/JKKPryNxNo7O358JRNPLmcdCI=; h=Cc:Date:From:Subject:In-reply-to:References:To; b=Ijteacrb6EV1oxw1I1+5cL8sLOwKLEXys01GSAPSY57isN8vKNYN/cTprtVlHUQKY ZW+2HAdqUl+76vverjWLgxn2eycTiJeOfzcR7ahT7pftzF5UdzxaEROFunVnRGzSrR DJRz2d7VlX5wYSh7WhR0mnr9JHlvlk9XG8So6b6E=
MIME-version: 1.0
Content-transfer-encoding: 8bit
Content-type: TEXT/PLAIN; charset="utf-8"
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01QDMUYC8LOW00008D@mauve.mrochek.com>; Thu, 27 Apr 2017 08:43:57 -0700 (PDT)
Cc: jmap@ietf.org
Message-id: <01QDNYPIIO2E00008D@mauve.mrochek.com>
Date: Thu, 27 Apr 2017 08:29:09 -0700
From: Ned Freed <ned.freed@mrochek.com>
In-reply-to: "Your message dated Wed, 26 Apr 2017 23:12:12 +0000" <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>
To: Neil Jenkins <neilj@fastmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/kWtnk249-FlmV4NO8hcofPjX03w>
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 15:50:44 -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.

Maybe it is from the client side, but from the server side it's very, very
different. The key point is there's no longer a queue that has to be maintained
in a mailbox.

> 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.

That's from the client perspective.

> 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.

It's not even close to being the only additional component.

> 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.

We don't have any such plumbing in our product that's connected to folder or
messages. And I cannot think of a single case where we've been asked for a
feature that required it.

				Ned