Subject: [Jmap] I-D Action: draft-ietf-jmap-mdn-01.txt

From: [email-masked]
Date: Thu, 07 Mar 2019 08:35:21 -0800

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the JSON Mail Access Protocol WG of the IETF.

        Title           : Handling Message Disposition Notification with JMAP
        Author          : Raphaël Ouazana
	Filename        : draft-ietf-jmap-mdn-01.txt
	Pages           : 10
	Date            : 2019-03-07

Abstract:
   This document specifies a data model for handling [RFC8098] MDN
   messages with a server using JMAP.

The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-jmap-mdn/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-jmap-mdn-01
https://datatracker.ietf.org/doc/html/draft-ietf-jmap-mdn-01

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-jmap-mdn-01

Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/

---

From: "Neil Jenkins" <[email-masked]>
Date: Thu, 21 Mar 2019 11:05:05 -0400

A few comments on the new draft:

>   The client SHOULD NOT issue a sendMDN request if the message has the
   "$MDNSent" keyword set.  In this case, the server MUST reject the
   submission with a standard "forbiddenToSend" SetError.

I don't think this should be a `forbiddenToSend` error; that implies the user does not have permission to send. An `alreadyExists` error might be appropriate, or some kind of new "precondition-failed" type error.

>  o  *created*: "String[EmailSubmission]" A map of creation id (client-
      specified) to an email sent from the referenced properties.

The type says this is a map to EmailSubmission objects, but the description says it is a map to an Email. Which is it?

> *
> EmailSubmission/parseMDN

*

This method is nothing to do with EmailSubmission really. Probably should be called *MDN/parse*.

> *
> 4.2 <https://tools.ietf.org/html/draft-ietf-jmap-mdn-01#section-4.2>.  Asking for MDN when sending an email

*

This example is wrong. You can't set a "headers" property <https://jmap.io/spec-mail.html#email/set> in Email/set. You need to set it as a specific header, e.g.

"header:Disposition-Notification-To": "[email-masked]"

>  The client issues a parse request:

            [[ "EmailSubmission/parseMDN", {
              "accountId": "ue150411c",
              "blobIds: "0f9f65ab-dc7b-4146-850f-6e4881093965"
            }, "0" ]]

This blobIds argument should be an array, but the example is just passing a string.

> *
> 5.2 <https://tools.ietf.org/html/draft-ietf-jmap-mdn-01#section-5.2>.  Registration of JMAP keyword '$MDNSent'

*

This keyword is already registered <https://www.iana.org/assignments/imap-jmap-keywords/imap-jmap-keywords.xhtml>. There is no need to register it again (indeed, this is not allowed).

Cheers,
Neil.

---

From: Raphael OUAZANA <[email-masked]>
Date: Fri, 22 Mar 2019 18:21:09 +0100

Hi Neil,

Thanks for your comments.

Le 2019-03-21 16:05, Neil Jenkins a écrit :
> I don't think this should be a forbiddenToSend error; that implies the
> user does not have permission to send. An alreadyExists error might be
> appropriate, or some kind of new "precondition-failed" type error.

I wrote it in the sense of forbidden by the RFC:
        [...]In any case, in the presence of the $MDNSent keyword,
        the client MUST ignore all other flags or keywords for the
        purpose of generating an MDN and MUST NOT send the MDN.

AlreadyExists seems misleading as the user could just not want to send 
the MDN, and in this case it will never exist. Maybe AlreadyProcessed or 
something like that then?

> The type says this is a map to EmailSubmission objects, but the
> description says it is a map to an Email. Which is it?

I wrote a map to "an email sent [...]". Maybe my English is not good 
enough, but for me an email sent means an EmailSubmission. How could I 
clarify?

>> EMAILSUBMISSION/PARSEMDN
> 
> This method is nothing to do with EmailSubmission really. Probably
> should be called MDN/PARSE.

Probably, I hesitated because like this all the MDN stuff is related to 
EmailSubmission, but I can write a MDN/parse if you think it's better.

>> 4.2 [1].  ASKING FOR MDN WHEN SENDING AN EMAIL
> 
> This example is wrong. You can't set a "headers" property [3] in
> Email/set. You need to set it as a specific header, e.g.
> 

Oops sorry, I guess I took it from an old specification, I will fix.

> This blobIds argument should be an array, but the example is just

Right, will fix.

>> 5.2 [2].  REGISTRATION OF JMAP KEYWORD '$MDNSENT'
> 
> This keyword is already registered [4]. There is no need to register
> it again (indeed, this is not allowed).

Oh nice, I was not aware of it. I will remove this part.

Regards,
Raphaël.