Re: [Jmap] I-D Action: draft-ietf-jmap-mdn-00.txt

Raphael OUAZANA <raphael.ouazana@linagora.com> Wed, 27 February 2019 15:41 UTC

Return-Path: <raphael.ouazana@linagora.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 0DF8A128CE4 for <jmap@ietfa.amsl.com>; Wed, 27 Feb 2019 07:41:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.301
X-Spam-Level:
X-Spam-Status: No, score=-4.301 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=smtpcorp.com header.b=ZVAxrjna; dkim=pass (2048-bit key) header.d=linagora.com header.b=ayAL+DEt
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 rcV_aqQkZZZ8 for <jmap@ietfa.amsl.com>; Wed, 27 Feb 2019 07:41:43 -0800 (PST)
Received: from e2i64.smtp2go.com (e2i64.smtp2go.com [103.2.140.64]) (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 502BC130FFB for <jmap@ietf.org>; Wed, 27 Feb 2019 07:41:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpcorp.com; s=a1-4; h=Feedback-ID:X-Smtpcorp-Track:Message-ID:Subject:To: From:Date:Reply-To:Sender:List-Unsubscribe; bh=wh/UKbLkBOvaIsrQg+THydaH0XMN2xe6S6Ga9nil18I=; b=ZVAxrjna5RGrdMIgnnUF3A3qiU 1w7Pc4ySB2PpL9TqU+Jh++YLSOqqAig6vqnySq9yNJj+ySKJsSau/u7iygmk2sBbGGZHb6y3XboVB wLR9f8wIOzb4uQuJJEmA+0v7ifKBxdzLtnxC5BsUoR8nTGVBwoNTMdaVbsxQmWe/YFvMk3ZRiEFyI /DoTfVQQqPD0Z/ZBtceItjSgxxGWDstmxm+mJJRlR5LpRXwh4MQ+0ry5wJOFytwckFSzjhUkXcZ// EPlUiGIReK0ipM6gR5RUquvnCiyx8oXU6wV/gOVCHBn4AHU5uajiGZ9XqJSqBgFAk7Ola2xEKk2xD k/vL+cRA==;
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linagora.com; i=@linagora.com; q=dns/txt; s=s266739; t=1551282102; h=from : subject : to : message-id : date; bh=wh/UKbLkBOvaIsrQg+THydaH0XMN2xe6S6Ga9nil18I=; b=ayAL+DEt2+7EE1XWj4cD6KA5qZP/PJ1MKIkHuRsB/nuGwzUPn3M3JSS96urc3xMQl8Ya/4 0k7XvOopFHifFcwrUduoWW9BO9SNFXGzQhLB90nJJtMyYYxprY8vZ8QBZ1wc11GcYE/hW9vQ eTJfcQ69mASx9kxjfBl8mBMRkKLeGviv+XXGFK/LoZpCteGU7Edilu0R+ACisHONjksfZRrX 1AafgXRJ7REr35Ghfjjmgv1CX1vzoIk32yDk+U/2n3b46hb7lv/s6KNTyPIrgguq/TEbUykD ybQvhDZYYqvopgeOaW4+DsCWUnqzLMe53MaCLJJuTS621xDW9MzgtTNw==
Received: from [10.66.228.43] (helo=SmtpCorp) by smtpcorp.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.91) (envelope-from <raphael.ouazana@linagora.com>) id 1gz1Ku-cp4Tia-LU; Wed, 27 Feb 2019 15:41:32 +0000
Received: from [10.54.36.8] (helo=smtp.linagora.com) by smtpcorp.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.91) (envelope-from <raphael.ouazana@linagora.com>) id 1gz1Kt-wSEWpQ-Fa; Wed, 27 Feb 2019 15:41:31 +0000
Received: from extranet.linagora.com (obm3-ui.linagora.dc2 [172.24.128.227]) by smtp.linagora.com (Postfix) with ESMTP id 8DD823F0FE; Wed, 27 Feb 2019 16:41:29 +0100 (CET)
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Date: Wed, 27 Feb 2019 16:41:29 +0100
X-LINAGORA-Copy-Delivery-Done: 1
From: Raphael OUAZANA <raphael.ouazana@linagora.com>
To: Neil Jenkins <neilj@fastmailteam.com>
Cc: IETF JMAP Mailing List <jmap@ietf.org>
In-Reply-To: <2cf743f3-1c18-4062-848e-f85ca505fa55@sloti7d1t02>
References: <153270520782.32707.4419621555491459322@ietfa.amsl.com> <2cf743f3-1c18-4062-848e-f85ca505fa55@sloti7d1t02>
Message-ID: <0df75c2dd9953f44a106223130be7abf@linagora.com>
X-Sender: raphael.ouazana@linagora.com
User-Agent: Roundcube Webmail/1.1.4
X-Smtpcorp-Track: 1gz1KtwSEWpQFa.dhApn-y2C
Feedback-ID: 266739m:266739aja3LFS:266739sqomqQgQ91
X-Report-Abuse: Please forward a copy of this message, including all headers, to <abuse-report@smtp2go.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/D3afNVxKDt0bZ4IHloYnZJFzYuA>
Subject: Re: [Jmap] I-D Action: draft-ietf-jmap-mdn-00.txt
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 27 Feb 2019 15:41:46 -0000

Hi,

Thank you for your comments. I handled them and created a pull request:
https://github.com/jmapio/jmap/pull/288

I finally decided to come back to directly send MDN, and not create 
temporary MDN. I also took time to explain other MDN related processes, 
and to add some examples.

I will take some time to handle eventual comments on the pull request 
before resubmitting an IETF draft.

Regards,
Raphaël.

Le 2018-12-05 01:46, Neil Jenkins a écrit :
> Finally sending my feedback on this draft, as promised in Bangkok.
> Sorry for the delay! Generally this looks good, just some comments to
> bring it up to date with the current JMAP conventions and a confusion
> over how you're actually meant to send the MDN!
> 
>> 2 [1].  Email/createMDN
>> 
>> The Email/createMDN method create a [RFC5322 [2]] message from
>> MDN
>> properties.
> 
> Where are these Email objects being created? It's not clear to me
> whether these are intended to be saved to the account's mail store or
> not. If they _are_ being saved to the mail store, we need to give
> mailboxIds and keywords arguments. If they are not being saved, but
> just being sent immediately, that needs to be made clear and the
> method probably renamed to _sendMDN_.
> 
>> It takes the following arguments:
>> 
>> o  *accountId*: "String|null" The id of the account to use for
>> this
>> call.  If "null", defaults to the "urn:ietf:params:jmap:mail"
>> primary account.
> 
> This should be non-optional now to match the same change in the other
> JMAP specs.
> 
>> o  *mdns*: "String[MDN]" A map of creation id (client specified)
>> to
>> MDN objects
>> 
>> An *MDN* object has the following properties:
>> 
>> o  *referencedMessageId*: "String" Message Id of the received
>> message
>> the user wants to create an MDN for.
> 
> Again, to match current JMAP convention this should be
> referencedEmailId, or maybe just forEmailId?
> 
>> o  *subject*: "String" Subject that will be used as "Subject"
>> header
>> for this MDN.
>> 
>> o  *textBody*: "String" Human readable part of the MDN, as plain
>> text.
>> 
>> o  *reportingUA*: "String" Name of the MUA creating this MDN.  It
>> is
>> used to build the MDN Report part of the MDN.
>> 
>> o  *disposition*: "Disposition" Object containing the diverse MDN
>> disposition options.
>> 
>> A *Disposition* object has the following properties:
>> 
>> o  *actionMode*: "String" This MUST be one of the following
>> strings:
>> "manual-action" / "automatic-action"
>> 
>> o  *sendingMode*: "String" This MUST be one of the following
>> strings:
>> "MDN-sent-manually" / "MDN-sent-automatically"
>> 
>> o  *type*: "String" This MUST be one of the following strings:
>> "deleted" / "dispatched" / "displayed" / "processed"
>> 
>> See [RFC8098 [3]] for the exact meaning of these different
>> fields.
> 
> This all looks fine.
> 
>> If the _referencedMessageId_, _subject_, _textBody_,
>> _reportingUA_,
>> _disposition_ properties are invalid (e.g. missing, wrong type,
>> id
>> not found), the server MUST reject the import with an
>> "invalidProperties" SetError.
>> 
>> If the email cannot be created because it would take the account
>> over
>> quota, the creation should be rejected with a "maxQuotaReached"
>> SetError.
> 
> import -> create (I presume this is a copy-paste error) and the
> maxQuotaReached error is now just called overQuota. But rather than
> specify the last two paragraphs, probably better just to say it may
> return any standard SetError that is defined for a _create_ in the
> core spec.
> 
>> The response has the following arguments:
>> 
>> o  *accountId*: "String" The id of the account used for this
>> call.
>> 
>> o  *created*: "String[Email]" A map of the creation id to an
>> object
>> build from the referenced properties.  The _blobId_ field of
>> the
>> Email objects can then be used to effectively send the MDN.
> 
> Again, I'm unclear how you are supposed to use the blobId to send this
> MDN. The EmailSubmission object uses an emailId reference rather than
> a blobId. If it's creating an email object, it also needs to be clear
> about which properties the servers should return for each object in
> the response (e.g. id, threadId, blobId, etc.).
> 
>> o  *notCreated*: "String[SetError]" A map of creation id to a
>> SetError object for each Email that failed to be created.  The
>> possible errors are defined above.
> 
> This document needs a security considerations section at the end.
> 
> Cheers,
> 
> Neil.
> 
> Links:
> ------
> [1] https://tools.ietf.org/html/draft-ietf-jmap-mdn-00#section-2
> [2] https://tools.ietf.org/html/rfc5322
> [3] https://tools.ietf.org/html/rfc8098
> 
> _______________________________________________
> Jmap mailing list
> Jmap@ietf.org
> https://www.ietf.org/mailman/listinfo/jmap