Re: [Jmap] Submission

"Adrien de Croy" <adrien@qbik.com> Thu, 20 April 2017 08:25 UTC

Return-Path: <adrien@qbik.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 535CE12EB6D for <jmap@ietfa.amsl.com>; Thu, 20 Apr 2017 01:25:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-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 8XPab9t-2cvO for <jmap@ietfa.amsl.com>; Thu, 20 Apr 2017 01:24:58 -0700 (PDT)
Received: from smtp.qbik.com (smtp.qbik.com [122.56.26.1]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4A46C12EB6B for <jmap@ietf.org>; Thu, 20 Apr 2017 01:24:56 -0700 (PDT)
Received: From [192.168.1.146] (unverified [192.168.1.146]) by SMTP Server [192.168.1.3] (WinGate SMTP Receiver v9.0.5 (Build 5926)) with SMTP id <0001024507@smtp.qbik.com>; Thu, 20 Apr 2017 20:24:52 +1200
From: Adrien de Croy <adrien@qbik.com>
To: Ted Lemon <mellon@fugue.com>, Chris Newman <Chris.Newman@oracle.com>
Cc: "jmap@ietf.org" <jmap@ietf.org>
Date: Thu, 20 Apr 2017 08:24:52 +0000
Message-Id: <emd3533c0d-dc08-45c3-801c-07972858ad64@bodybag>
In-Reply-To: <A0FCE54A-8AFA-4267-9567-A218A12F1AAD@fugue.com>
References: <em27fa7b29-5584-44f3-aa88-086ce734ab59@bodybag> <096E2D4B-D7ED-4439-BB6F-7944892D2ACA@oracle.com> <89E217B2-A700-498C-BA72-3FD9939F34C7@fugue.com> <C987AD7A-84F0-4400-B418-77C58C0827C9@oracle.com> <A0FCE54A-8AFA-4267-9567-A218A12F1AAD@fugue.com>
Reply-To: Adrien de Croy <adrien@qbik.com>
User-Agent: eM_Client/7.0.27943.0
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="------=_MB53AEAAC2-A4A1-40FB-863B-2C02968509DA"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/iBtsKzyiFyVv7KlcTUZd9x9GyVQ>
Subject: Re: [Jmap] Submission
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, 20 Apr 2017 08:25:01 -0000


------ Original Message ------
From: "Ted Lemon" <mellon@fugue.com>
To: "Chris Newman" <Chris.Newman@oracle.com>
Cc: "jmap@ietf.org" <jmap@ietf.org>
Sent: 20/04/2017 1:55:39 PM
Subject: Re: [Jmap] Submission

>On Apr 19, 2017, at 9:28 PM, Chris Newman <Chris.Newman@oracle.com> 
>wrote:
>>To clarify my point, I think having an "outbox" with combined mail 
>>store and mail queue semantics as a mandatory architectural element of 
>>JMAP is a protocol design error because it breaks functional 
>>separation. And that violation of functional separation is 
>>particularly problematic in larger deployments where mail stores and 
>>mail queues each add management and monitoring complexity and require 
>>different designs and storage models to scale effectively.
>>
>>JMAP needs to have a submission action that has semantics matching the 
>>IETF Submission standard. It's fine for that command to pull data from 
>>the mail store as part of the submission action (as RFC 4468 does). 
>>But the JMAP protocol needs to allow implementations where mail queue 
>>and mail store semantics are separate.
>
>Perhaps so.   However, the semantics of submission protocols aren't 
>really right either.   What I think we want is to tell the MUA that 
>delivery failed if it did, and to allow the MUA to know the current 
>status of delivery at least at the first hop, if delivery is not yet 
>complete.   But the SMTP submit protocol doesn't do this.   It's fire 
>and forget: all you get is confirmation that the message has been 
>queued.
>
>Granting that the point of this working group is not to fix SMTP, the 
>semantics of the JMAP submit protocol ought to allow for delivery of 
>failure status without generating a needless bounce message just as a 
>place to put information from the site MTA's delivery attempt.   If the 
>failure happens farther down the line in a forwarding chain, we can't 
>do anything about it, but from a usability perspective bounce messages 
>are worse than useless, so anything that can reduce the number of such 
>messages that users see is a net win.
I agree

I'd love to see a mail client that does at least initial validation on 
destination email addresses as they are added to the message, so that 
errors in the addresses which can be resolved at that stage (e.g. 
NXDOMAIN) can be raised with the email author before the mail is even 
submitted.

Due to DNS issues, this may need to be handled on the server, but could 
be something as simple as an MX lookup, or something.  Late bounce 
messages relating to bad domain parts of an email address are 
ridiculously user-unfriendly and we could do so much better.

If we're doing a new mail protocol, we should be targeting the user 
experience we want, rather than just whatever it takes to replicate what 
we have maybe with fewer configuration points.

It should be possible in many cases to even give realtime updates about 
the delivery status of the message whilst it's sitting in some folder 
(whether that's outbox or sent) in the case where the JMAP server is 
also the SMTP client for delivery upstream.

I can imagine sitting at my desk after sending a mail, watching the 
status icon on the message go from submitted to connecting to delivered 
to destination mailbox.  Why not consider something like some way to 
give status updates back to the client for this kind of thing.

People are moving away from SMTP to things like Facebook messaging due 
to these sorts of reasons.  They focused on user experience.  If we 
don't then we are wasting our time.

Adrien

>
>
>The point that I am arguing is that sent messages really do have a 
>place in something that is notionally a mail store, and those messages 
>serve as a place where delivery status can be found.   Message 
>submission should not be a transaction: it should be a process.   
>Notification should work even if the MUA isn't present at the time of 
>failure, and should be available in all MUAs, not just the sending MUA. 
>It should be presentable to the user in a way that makes sense.   A 
>"sent" folder makes sense.   A separate queue construct does not.   
>Forcing the MUA to fake this isn't going to produce a good user 
>experience.
>