draft-ietf-jmap-mdn-05.txt | draft-ietf-jmap-mdn-06.txt | |||
---|---|---|---|---|
JMAP R. Ouazana, Ed. | JMAP R. Ouazana, Ed. | |||
Internet-Draft Linagora | Internet-Draft Linagora | |||
Intended status: Standards Track February 26, 2020 | Intended status: Standards Track February 28, 2020 | |||
Expires: August 29, 2020 | Expires: August 31, 2020 | |||
Handling Message Disposition Notification with JMAP | Handling Message Disposition Notification with JMAP | |||
draft-ietf-jmap-mdn-05 | draft-ietf-jmap-mdn-06 | |||
Abstract | Abstract | |||
This document specifies a data model for handling [RFC8098] MDN | This document specifies a data model for handling [RFC8098] MDN | |||
messages with a server using JMAP. | messages with a server using JMAP. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
skipping to change at page 1, line 31 ¶ | skipping to change at page 1, line 31 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on August 29, 2020. | This Internet-Draft will expire on August 31, 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 4, line 8 ¶ | skipping to change at page 4, line 8 ¶ | |||
o forEmailId: "Id|null" Email Id of the received email this MDN is | o forEmailId: "Id|null" Email Id of the received email this MDN is | |||
relative to. | relative to. | |||
o subject: "String|null" Subject used as "Subject" header for this | o subject: "String|null" Subject used as "Subject" header for this | |||
MDN. | MDN. | |||
o textBody: "String|null" Human readable part of the MDN, as plain | o textBody: "String|null" Human readable part of the MDN, as plain | |||
text. | text. | |||
o includeOriginalMessage: "Boolean" (default: false). If "true", | ||||
the content of the original message will appear in the third | ||||
component of the multipart/report generated for the MDN. See | ||||
[RFC8098] for details and security considerations. | ||||
o reportingUA: "String|null" Name of the MUA creating this MDN. It | o reportingUA: "String|null" Name of the MUA creating this MDN. It | |||
is used to build the MDN Report part of the MDN. | is used to build the MDN Report part of the MDN. | |||
o disposition: "Disposition" Object containing the diverse MDN | o disposition: "Disposition" Object containing the diverse MDN | |||
disposition options. | disposition options. | |||
o mdnGateway: "String|null" (server-set) Name of the gateway or MTA | o mdnGateway: "String|null" (server-set) Name of the gateway or MTA | |||
that translated a foreign (non-Internet) message disposition | that translated a foreign (non-Internet) message disposition | |||
notification into this MDN. | notification into this MDN. | |||
skipping to change at page 5, line 8 ¶ | skipping to change at page 5, line 10 ¶ | |||
"MDN-sent-manually" / "MDN-sent-automatically" | "MDN-sent-manually" / "MDN-sent-automatically" | |||
o type: "String" This MUST be one of the following strings: | o type: "String" This MUST be one of the following strings: | |||
"deleted" / "dispatched" / "displayed" / "processed" | "deleted" / "dispatched" / "displayed" / "processed" | |||
See [RFC8098] for the exact meaning of these different fields. | See [RFC8098] for the exact meaning of these different fields. | |||
2.1. MDN/send | 2.1. MDN/send | |||
The MDN/send method sends an [RFC5322] message from an MDN object. | The MDN/send method sends an [RFC5322] message from an MDN object. | |||
The capability "urn:ietf:params:jmap:mail" is implicitely required | When calling this method the "using" property of the Request object | |||
while using this method. The method takes the following arguments: | MUST contain the capabilities "urn:ietf:params:jmap:mdn" and | |||
"urn:ietf:params:jmap:mail". The latter because of the implicit call | ||||
to Email/set, described below. The method takes the following | ||||
arguments: | ||||
o accountId: "Id" The id of the account to use. | o accountId: "Id" The id of the account to use. | |||
o send: "Id[MDN]" A map of creation id (client specified) to MDN | o send: "Id[MDN]" A map of creation id (client specified) to MDN | |||
objects. | objects. | |||
The response has the following arguments: | The response has the following arguments: | |||
o accountId: "Id" The id of the account used for the call. | o accountId: "Id" The id of the account used for the call. | |||
o sent: "Id[MDN]|null" A map of creation id to MDN containing any | o sent: "Id[MDN]|null" A map of creation id to MDN containing any | |||
properties that were not sent by the client. This includes any | properties that were not set by the client. This includes any | |||
properties that were omitted by the client and thus set to a | properties that were omitted by the client and thus set to a | |||
default by the server. This argument is null if no MDN objects | default by the server. This argument is null if no MDN objects | |||
were successfully sent. | were successfully sent. | |||
o notSent: "Id[MDNError]|null" A map of the creation id to an | o notSent: "Id[MDNError]|null" A map of the creation id to an | |||
MDNError object for each record that failed to be sent, or null if | MDNError object for each record that failed to be sent, or null if | |||
all successful. | all successful. | |||
The following MDNError types are defined: | The following MDNError types are defined: | |||
skipping to change at page 10, line 31 ¶ | skipping to change at page 10, line 31 ¶ | |||
"originalMessageId": "<1521557867.2614.0.camel@apache.org>" | "originalMessageId": "<1521557867.2614.0.camel@apache.org>" | |||
} | } | |||
} | } | |||
}, "0" ]] | }, "0" ]] | |||
In case of a not found blobId, the server would respond: | In case of a not found blobId, the server would respond: | |||
[[ "MDN/parse", { | [[ "MDN/parse", { | |||
"accountId": "ue150411c", | "accountId": "ue150411c", | |||
"notFound": [ "0f9f65ab-dc7b-4146-850f-6e4881093965" ] | "notFound": [ "0f9f65ab-dc7b-4146-850f-6e4881093965" ] | |||
} | ||||
}, "0" ]] | }, "0" ]] | |||
If the blobId has been found but is not parsable, the server would | If the blobId has been found but is not parsable, the server would | |||
respond: | respond: | |||
[[ "MDN/parse", { | [[ "MDN/parse", { | |||
"accountId": "ue150411c", | "accountId": "ue150411c", | |||
"notParsable": [ "0f9f65ab-dc7b-4146-850f-6e4881093965" ] | "notParsable": [ "0f9f65ab-dc7b-4146-850f-6e4881093965" ] | |||
} | ||||
}, "0" ]] | }, "0" ]] | |||
4. IANA Considerations | 4. IANA Considerations | |||
4.1. JMAP Capability Registration for "mdn" | 4.1. JMAP Capability Registration for "mdn" | |||
IANA will register the "mdn" JMAP Capability as follows: | IANA will register the "mdn" JMAP Capability as follows: | |||
Capability Name: "urn:ietf:params:jmap:mdn" | Capability Name: "urn:ietf:params:jmap:mdn" | |||
Specification document: this document | Specification document: this document | |||
Intended use: common | ||||
Intended use: common | ||||
Change Controller: IETF | Change Controller: IETF | |||
Security and privacy considerations: this document, section 5. | Security and privacy considerations: this document, section 5. | |||
4.2. JMAP Error Codes Registry | 4.2. JMAP Error Codes Registry | |||
The following subsection register one new error code in the "JMAP | The following subsection register one new error code in the "JMAP | |||
Error Codes" registry, as defined in [RFC8620]. | Error Codes" registry, as defined in [RFC8620]. | |||
4.2.1. mdnAlreadySent | 4.2.1. mdnAlreadySent | |||
End of changes. 10 change blocks. | ||||
10 lines changed or deleted | 16 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |