[要約] RFC 9007は、JSON Meta Application Protocol (JMAP) を使用してメッセージ配信通知 (MDN) を処理する方法について説明しています。この文書の目的は、電子メールの配信確認を効率的に管理するための標準を提供することです。利用場面としては、電子メールクライアントの開発者がJMAPをサポートすることで、ユーザーが送信したメールの配信状況を確認できるようにする場合などがあります。

Internet Engineering Task Force (IETF)                   R. Ouazana, Ed.
Request for Comments: 9007                                      Linagora
Category: Standards Track                                     March 2021
ISSN: 2070-1721
        

Handling Message Disposition Notification with the JSON Meta Application Protocol (JMAP)

JSONメタApplication Protocol(JMAP)によるメッセージ配置通知の処理

Abstract

概要

This document specifies a data model for handling Message Disposition Notifications (MDNs) (see RFC 8098) in the JSON Meta Application Protocol (JMAP) (see RFCs 8620 and 8621).

このドキュメントでは、JSONメタアプリケーションプロトコル(JMAP)のメッセージ配置通知(MDNS)(RFC 8098を参照)を処理するためのデータモデル(RFCS 8620および8621を参照)を指定します。

Status of This Memo

本文書の位置付け

This is an Internet Standards Track document.

これはインターネット規格のトラック文書です。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

この文書は、インターネットエンジニアリングタスクフォース(IETF)の製品です。IETFコミュニティのコンセンサスを表します。それは公開レビューを受け、インターネットエンジニアリングステアリンググループ(IESG)による出版の承認を受けました。インターネット規格に関する詳細情報は、RFC 7841のセクション2で利用できます。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9007.

この文書の現在のステータス、任意のエラータ、およびフィードバックを提供する方法は、https://www.rfc-editor.org/info/rfc9007で入手できます。

Copyright Notice

著作権表示

Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved.

著作権(C)2021 IETF信頼と文書著者として識別された人。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

このドキュメントは、このドキュメントの発行日に有効なBCP 78およびIETFドキュメントに関連するIETFトラストの法的規定(https://trustee.ietf.org/license-info)の対象となります。 これらのドキュメントは、このドキュメントに関するお客様の権利と制限について説明しているため、注意深く確認してください。 このドキュメントから抽出されたコードコンポーネントには、Trust LegalProvisionsのセクション4.eで説明されているSimplifiedBSD Licenseテキストが含まれている必要があり、Simplified BSDLicenseで説明されているように保証なしで提供されます。

Table of Contents

目次

   1.  Introduction
     1.1.  Notational Conventions
     1.2.  Terminology
     1.3.  Addition to the Capabilities Object
   2.  MDN
     2.1.  MDN/send
     2.2.  MDN/parse
   3.  Samples
     3.1.  Sending an MDN for a Received Email Message
     3.2.  Asking for an MDN When Sending an Email Message
     3.3.  Parsing a Received MDN
   4.  IANA Considerations
     4.1.  JMAP Capability Registration for "mdn"
     4.2.  JMAP Error Codes Registration for "mdnAlreadySent"
   5.  Security Considerations
   6.  Normative References
   Author's Address
        
1. Introduction
1. はじめに

JMAP ("The JSON Meta Application Protocol (JMAP)" [RFC8620]) is a generic protocol for synchronising data, such as mail, calendars, or contacts, between a client and a server. It is optimised for mobile and web environments, and it provides a consistent interface to different data types.

JMAP( "JSONメタApplication Protocol(JMAP)" [RFC8620])は、クライアントとサーバー間で、メール、カレンダー、連絡先などのデータを同期するための一般的なプロトコルです。それはモバイル環境とWeb環境に最適化されており、異なるデータ型への一貫したインタフェースを提供します。

JMAP for Mail ("The JSON Meta Application Protocol (JMAP) for Mail" [RFC8621]) specifies a data model for synchronising email data with a server using JMAP. Clients can use this to efficiently search, access, organise, and send messages.

JMAP for Mail( "Mail"のJSONメタアプリケーションプロトコル(JMAP)[RFC8621])は、JMAPを使用して電子メールデータをサーバーと同期させるためのデータモデルを指定します。クライアントは、メッセージを効率的に検索、アクセス、整理、および送信するために使用できます。

Message Disposition Notifications (MDNs) are defined in [RFC8098] and are used as "read receipts", "acknowledgements", or "receipt notifications".

メッセージ配置通知(MDNS)は[RFC8098]で定義され、「受信確認」、「確認応答」、「受信通知」として使用されます。

A client can come across MDNs in different ways:

クライアントはさまざまな方法でMDNを越えて行けることができます。

1. When receiving an email message, an MDN can be sent to the sender. This specification defines an "MDN/send" method to cover this case.

1. 電子メールメッセージを受信すると、MDNを送信者に送信できます。この仕様は、この場合を隠す「MDN / Send」メソッドを定義しています。

2. When sending an email message, an MDN can be requested. This must be done with the help of a header field, as already specified by [RFC8098]; the header field can already be handled by guidance in [RFC8621].

2. 電子メールメッセージを送信するときは、MDNを要求することができます。これは、[RFC8098]で既に指定されているように、ヘッダーフィールドの助けを借りて行わなければなりません。ヘッダーフィールドはすでに[RFC8621]のガイダンスによって処理できます。

3. When receiving an MDN, the MDN could be related to an existing sent message. This is already covered by [RFC8621] in the EmailSubmission object. A client might want to display detailed information about a received MDN. This specification defines an "MDN/parse" method to cover this case.

3. MDNを受信すると、MDNは既存の送信メッセージに関連している可能性があります。これは、EmailSubmissionオブジェクトの[RFC8621]ですでにカバーされています。クライアントは、受信したMDNに関する詳細情報を表示したいと思うかもしれません。この場合は、この場合を隠す「MDN / Parse」メソッドを定義します。

1.1. Notational Conventions
1.1. 表記規則

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

この文書のキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", および "OPTIONAL" はBCP 14 [RFC2119] [RFC8174]で説明されているように、すべて大文字の場合にのみ解釈されます。

Type signatures, examples, and property descriptions in this document follow the conventions established in Section 1.1 of [RFC8620]. Data types defined in the core specification are also used in this document.

タイプシグネチャ、例、およびプロパティの説明は、[RFC8620]のセクション1.1で確立された規則に従います。この文書では、コア指定で定義されているデータ型も使用されています。

Servers MUST support all properties specified for the new data types defined in this document.

サーバーは、このドキュメントで定義されている新しいデータ型に指定されたすべてのプロパティをサポートしている必要があります。

1.2. Terminology
1.2. 用語

The same terminology is used in this document as in the core JMAP specification.

この文書では、Core JMAP仕様のように同じ用語が使用されています。

Because keywords are case insensitive in IMAP but case sensitive in JMAP, the "$mdnsent" keyword MUST always be used in lowercase.

キーワードはIMAPで大文字と小文字が区別されないがJMAPで大文字と小文字が区別されるため、 "$ mdnsent"キーワードは常に小文字で使用されている必要があります。

1.3. Addition to the Capabilities Object
1.3. 機能オブジェクトへの追加

Capabilities are announced as part of the standard JMAP Session resource; see [RFC8620], Section 2. This defines a new capability, "urn:ietf:params:jmap:mdn".

能力は標準のJMAPセッションリソースの一部として発表されます。[RFC8620]、セクション2を参照してください。これは、新しい機能 "urn:ietf:params:jmap:mdn"を定義します。

The capability "urn:ietf:params:jmap:mdn" being present in the "accountCapabilities" property of an account represents support for the "MDN" data type, parsing MDNs via the "MDN/parse" method, and creating and sending MDN messages via the "MDN/send" method. Servers that include the capability in one or more "accountCapabilities" properties MUST also include the property in the "capabilities" property.

アカウントの「AccountCapabilities」プロパティに存在する機能 "urn:ietf:params:jmap:mdn"が、 "MDN"データ型のサポートを表し、 "MDN / parse"メソッドを介してMDNの解析、およびMDNの作成と送信"mdn / send"メソッドを介したメッセージ。1つ以上の「AccountCapabilities」プロパティに機能を含むサーバーには、「Capabilities」プロパティにプロパティも含まれている必要があります。

The value of this "urn:ietf:params:jmap:mdn" property is an empty object both in the account's "accountCapabilities" property and in the "capabilities" property.

この "urn:ietf:params:jmap:mdn"プロパティの値は、アカウントの "AccountCapabilities"プロパティと "Capabilities"プロパティの両方で空のオブジェクトです。

2. MDN
2. MDN

An *MDN* object has the following properties:

* MDN *オブジェクトには、次のプロパティがあります。

* forEmailId: "Id|null"

* foremailid: "ID | NULL"

The Email id of the received message to which this MDN is related. This property MUST NOT be null for "MDN/send" but MAY be null in the response from the "MDN/parse" method.

このMDNが関連する受信したメッセージの電子メールID。このプロパティは "mdn / send"の場合はnullでなければなりませんが、 "mdn / parse"メソッドからの応答にはnullかもしれません。

* subject: "String|null"

* 件名: "String | NULL"

The subject used as "Subject" header field for this MDN.

このMDNの「件名」ヘッダーフィールドとして使用されたサブジェクト。

* textBody: "String|null"

* テキストボディ: "String | NULL"

The human-readable part of the MDN, as plain text.

MDNの人間が読める部分、プレーンテキストとして。

* includeOriginalMessage: "Boolean" (default: false)

* includeOriginalMessage: "boolean"(デフォルト: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.

"true"の場合、元のメッセージの内容がMDNに対して生成されたマルチパート/レポートの3番目のコンポーネントに表示されます。詳細とセキュリティに関する考慮事項については、[RFC8098]を参照してください。

* reportingUA: "String|null"

* Reportingua: "string | null"

The name of the Mail User Agent (MUA) creating this MDN. It is used to build the MDN report part of the MDN. Note that a "null" value may have better privacy properties.

このMDNを作成するメールユーザーエージェント(MUA)の名前。MDNのMDNレポート部分を構築するために使用されます。「NULL」値は、より優れたプライバシー特性を有することがあることに注意してください。

* disposition: "Disposition"

* 処分:「処分」

The object containing the diverse MDN disposition options.

多様なMDN配置オプションを含むオブジェクト。

* mdnGateway: "String|null" (server-set)

* MDNGateway: "string | null"(サーバーセット)

The name of the gateway or Message Transfer Agent (MTA) that translated a foreign (non-Internet) message disposition notification into this MDN.

このMDNに外国語(非インターネット)メッセージ処分通知を翻訳したゲートウェイまたはメッセージ転送エージェント(MTA)の名前。

* originalRecipient: "String|null" (server-set)

* originalRecipient: "string | null"(サーバーセット)

The original recipient address as specified by the sender of the message for which the MDN is being issued.

MDNが発行されているメッセージの送信者によって指定された元の受信者アドレス。

* finalRecipient: "String|null"

* FinalRecipient: "string | null"

The recipient for which the MDN is being issued. If set, it overrides the value that would be calculated by the server from the Identity defined in the "MDN/send" method, unless explicitly set by the client.

MDNが発行されている受信者。設定されている場合は、クライアントによって明示的に設定されていない限り、サーバーによって計算される値を "mdn / send"メソッドで定義されているアイデンティティからオーバーライドします。

* originalMessageId: "String|null" (server-set)

* originalMessageID: "string | null"(サーバーセット)

The "Message-ID" header field [RFC5322] (not the JMAP id) of the message for which the MDN is being issued.

MDNが発行されているメッセージの「Message-ID」ヘッダフィールド[RFC5322](JMAP IDではありません)。

* error: "String[]|null" (server-set)

* エラー: "string [] | NULL"(サーバーセット)

Additional information in the form of text messages when the "error" disposition modifier appears.

「エラー」分配修飾子が表示されたときにテキストメッセージの形式の追加情報。

* extensionFields: "String[String]|null"

* ExtensionFields: "String [String] | NULL"

The object where keys are extension-field names, and values are extension-field values (see [RFC8098], Section 3.3).

キーが拡張フィールド名で、値が拡張フィールドの値であるオブジェクトは、拡張フィールドの値です([RFC8098]、セクション3.3)。

A *Disposition* object has the following properties:

A * Disposition *オブジェクトには、次のプロパティがあります。

* actionMode: "String"

* ActionMode: "string"

This MUST be one of the following strings: "manual-action" / "automatic-action"

これは、次の文字列のいずれかでなければなりません。「手動アクション」/「自動アクション」

* sendingMode: "String"

* sendingMode: "string"

This MUST be one of the following strings: "mdn-sent-manually" / "mdn-sent-automatically"

これは、次の文字列のいずれかでなければなりません。

* type: "String"

* タイプ: "string"

      This MUST be one of the following strings: "deleted" /
      "dispatched" / "displayed" / "processed"
        

See [RFC8098] for the exact meaning of these different fields. These fields are defined as case insensitive in [RFC8098] but are case sensitive in this RFC and MUST be converted to lowercase by "MDN/ parse".

これらの異なるフィールドの正確な意味については、[RFC8098]を参照してください。これらのフィールドは[RFC8098]では、このRFCで大文字と小文字が区別され、「MDN / PARSE」で小文字に変換する必要があります。

2.1. MDN/send
2.1. MDN / Send.

The "MDN/send" method sends a message in the style of [RFC5322] from an MDN object. When calling this method, the "using" property of the Request object 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" and the use of Identity objects, which is described below. The method takes the following arguments:

"MDN / Send"メソッドは、MDNオブジェクトから[RFC5322]のスタイルにメッセージを送信します。このメソッドを呼び出すとき、要求オブジェクトの "using"プロパティには、 "urn:ietf:params:jmap:mdn"と "urn:jetf:params:jmap:mail";後述する「電子メール/セット」およびIDオブジェクトの使用のために、後者。この方法は次の引数を取ります。

* accountId: "Id"

* accountID: "id"

The id of the account to use.

使用するアカウントのID。

* identityId: "Id"

* IdentityID: "ID"

The id of the Identity to associate with these MDNs. The server will use this identity to define the sender of the MDNs and to set the "finalRecipient" field.

これらのMDNと関連付けるIDのID。サーバーはこのIDを使用してMDNの送信者を定義し、[FinalRecipient]フィールドを設定します。

* send: "Id[MDN]"

* 送信: "id [mdn]"

A map of the creation id (client specified) to MDN objects.

作成ID(クライアント指定)のMDNオブジェクトのマップ。

* onSuccessUpdateEmail: "Id[PatchObject]|null"

* OnSuccessUpdateEmail: "ID [PatchObject] | NULL"

A map of the id to an object containing properties to update on the Email object referenced by the "MDN/send" if the sending succeeds. This will always be a backward reference to the creation id (see the example below in Section 3.1).

送信が成功した場合に「MDN / Send」によって参照される電子メールオブジェクトで更新するプロパティを含むオブジェクトへのIDのマップ。これは常に作成IDへの後方参照です(下記の例を参照)。

The response has the following arguments:

応答には次の引数があります。

* accountId: "Id"

* accountID: "id"

The id of the account used for the call.

呼び出しに使用されるアカウントのID。

* sent: "Id[MDN]|null"

* 送信: "ID [MDN] | NULL"

A map of the creation id to an MDN containing any properties that were not set by the client. This includes any properties that were omitted by the client and thus set to a default by the server. This argument is null if no MDN objects were successfully sent.

クライアントによって設定されていないプロパティを含むMDNへの作成IDのマップ。これには、クライアントによって省略されていて、サーバーによってデフォルトに設定されたプロパティが含まれます。MDNオブジェクトが正常に送信されなかった場合、この引数はNULLです。

* notSent: "Id[SetError]|null"

* NOTSENT: "ID [SetError] | NULL"

A map of the creation id to a SetError object for each record that failed to be sent or null if all successful.

作成に失敗した各レコードのSetErrorオブジェクトへの作成IDのマップすべてが成功した場合にはヌルになりました。

In this context, the existing SetError types defined in [RFC8620] and [RFC8621] are interpreted as follows:

これに関連して、[RFC8620]と[RFC8621]で定義されている既存のSetError型は次のように解釈されます。

notFound: The reference "forEmailId" cannot be found or has no valid "Disposition-Notification-To" header field.

ノートフォーメン:参照 "FOREMAILID"は見つかりません。または有効な "disposition-notification-to"のヘッダーフィールドが見つかりません。

forbidden: "MDN/send" would violate an Access Control List (ACL) or other permissions policy.

禁止: "MDN / Send"はアクセス制御リスト(ACL)または他の権限ポリシーに違反します。

forbiddenFrom: The user is not allowed to use the given "finalRecipient" property.

forbiddenfrom:指定された "finalrecipient"プロパティを使用することはできません。

overQuota: "MDN/send" would exceed a server-defined limit on the number or total size of sent MDNs. It could include limitations on sent messages.

オーバークタ: "MDN / Send"は、送信されたMDNの数または合計サイズのサーバー定義の制限を超えます。送信メッセージに制限を含めることができます。

tooLarge: "MDN/send" would result in an MDN that exceeds a server-defined limit for the maximum size of an MDN or more generally, on email message.

Toolarge: "MDN / Send"は、MDNの最大サイズまたは電子メールメッセージで、サーバー定義の制限を超えるMDNになります。

rateLimit: Too many MDNs or email messages have been created recently, and a server-defined rate limit has been reached. It may work if tried again later.

RateLimit:最近多くのMDNまたは電子メールメッセージが作成され、サーバー定義のレート制限に達しました。後でもう一度試した場合はうまくいくかもしれません。

invalidProperties: The record given is invalid in some way.

InvalidProperties:指定されたレコードは何らかの形で無効です。

The following is a new SetError:

以下は新しいSetErrorです。

mdnAlreadySent: The message has the "$mdnsent" keyword already set.

MDNALReadySent:メッセージには "$ mdnsent"キーワードがすでに設定されています。

If the "accountId" or "identityId" given cannot be found, the method call is rejected with an "invalidArguments" error.

指定された「accountID」または「IDENTITYID」が見つからない場合、メソッド呼び出しは "InvalidArguments"エラーで拒否されます。

The client MUST NOT issue an "MDN/send" request if the message has the "$mdnsent" keyword set.

メッセージに "$ mdnsent"キーワードセットがある場合、クライアントは "MDN / Send"要求を発行してはいけません。

When sending the MDN, the server is in charge of generating the "originalRecipient" and "originalMessageId" fields according to [RFC8098]. "finalRecipient" will also generally be generated by the server based on the provided identity, but if specified by the client and allowed (see Section 5), the server will use the client-provided value.

MDNを送信すると、[RFC8098]に従って「OriginalRecipient」と「純正なMessageId」フィールドの生成を担当しています。「FinalRecipipient」は、提供された識別情報に基づいてサーバによっても一般的に生成され、クライアントによって指定されている場合(セクション5参照)、サーバはクライアント提供の値を使用する。

The client is expected to explicitly update each "Email" for which an "MDN/send" has been invoked in order to set the "$mdnsent" keyword on these messages. To ensure that, the server MUST reject an "MDN/send" that does not result in setting the keyword "$mdnsent". Thus, the server MUST check that the "onSuccessUpdateEmail" property of the method is correctly set to update this keyword.

クライアントは、これらのメッセージに "$ mdnsent"キーワードを設定するために "mdn / send"が呼び出されたそれぞれの "電子メール"を明示的に更新することが期待されています。それを確実にするために、サーバーはキーワード "$ mdnsent"を設定しない "MDN / Send"を拒否しなければなりません。したがって、このキーワードを更新する方法の「OnSuccessUpdateEmail」プロパティが正しく設定されていることをサーバーであることをサーバーであることを確認する必要があります。

2.2. MDN/parse
2.2. MDN / Parse.

This method allows a client to parse blobs as messages in the style of [RFC5322] to get MDN objects. This can be used to parse and get detailed information about blobs referenced in the "mdnBlobIds" of the EmailSubmission object or any email message the client could expect to be an MDN.

この方法では、クライアントがMDNオブジェクトを取得するために[RFC5322]のスタイルのメッセージとしてBLOBを解析することができます。これは、EmailSubmissionオブジェクトの「MDNBlobid」またはクライアントがMDNになる可能性がある任意の電子メールメッセージで参照されているBLOBに関する詳細情報を解析して取得するために使用できます。

The "forEmailId" property can be null or missing if the "originalMessageId" property is missing or does not refer to an existing message or if the server cannot efficiently calculate the related message (for example, if several messages get the same "Message-ID" header field).

"foremailid"プロパティは、 "ofolidemessageId"プロパティが見つからないか、既存のメッセージを参照していない場合、またはサーバーが関連メッセージを効率的に計算できない場合(たとえば、複数のメッセージが同じ "メッセージIDを効率的に計算できない場合は、NULLまたは欠落できます。「ヘッダーフィールド)。

The "MDN/parse" method takes the following arguments:

"mdn / parse"メソッドは次の引数を取ります。

* accountId: "Id"

* accountID: "id"

The id of the account to use.

使用するアカウントのID。

* blobIds: "Id[]"

* Blobids: "ID []"

The ids of the blobs to parse.

解析するブロブのID。

The response has the following arguments:

応答には次の引数があります。

* accountId: "Id"

* accountID: "id"

The id of the account used for the call.

呼び出しに使用されるアカウントのID。

* parsed: "Id[MDN]|null"

* 解析: "ID [MDN] | NULL"

A map of the blob id to a parsed MDN representation for each successfully parsed blob or null if none.

BLOB IDのマップは、それぞれに正常に解析されたBLOBまたはNONEの場合にNULLの解析されたMDN表現へのマップ。

* notParsable: "Id[]|null"

* notparable: "ID [] | NULL"

A list of ids given that corresponds to blobs that could not be parsed as MDNs or null if none.

mdnsとして解析できなかったBLOBに対応するIDのリストは、mdnsまたはnullの場合はnullに対応します。

* notFound: "Id[]|null"

* NOTFOUND: "ID [] | NULL"

A list of blob ids given that could not be found or null if none.

見つからなかったかnullの場合、指定されたBLOB IDのリスト。

The following additional errors may be returned instead of the "MDN/ parse" response:

"mdn / parse"応答の代わりに次の追加のエラーが返されるかもしれません。

requestTooLarge: The number of ids requested by the client exceeds the maximum number the server is willing to process in a single method call.

RequestToolarge:クライアントから要求されたIDの数が、サーバーが単一のメソッド呼び出しで処理している最大数を超えています。

invalidArguments: If the given "accountId" cannot be found, the MDN parsing is rejected with an "invalidArguments" error.

InvalidArguments:指定された "accountID"が見つからない場合、MDN解析は "InvalidArguments"エラーで拒否されます。

3. Samples
3. サンプル
3.1. Sending an MDN for a Received Email Message
3.1. 受信した電子メールメッセージにMDNを送信する

A client can use the following request to send an MDN back to the sender:

クライアントは次の要求を使用して送信者にMDNを送り返すことができます。

      [[ "MDN/send", {
        "accountId": "ue150411c",
        "identityId": "I64588216",
        "send": {
          "k1546": {
            "forEmailId": "Md45b47b4877521042cec0938",
            "subject": "Read receipt for: World domination",
            "textBody": "This receipt shows that the email has been
                displayed on your recipient's computer.  There is no
                guarantee it has been read or understood.",
            "reportingUA": "joes-pc.cs.example.com; Foomail 97.1",
            "disposition": {
              "actionMode": "manual-action",
              "sendingMode": "mdn-sent-manually",
              "type": "displayed"
            },
            "extension": {
              "EXTENSION-EXAMPLE": "example.com"
            }
          }
        },
        "onSuccessUpdateEmail": {
          "#k1546": {
            "keywords/$mdnsent": true
          }
        }
      }, "0" ]]
        

If the email id matches an existing email message without the "$mdnsent" keyword, the server can answer:

電子メールIDが "$ mdnsent"キーワードなしで既存の電子メールメッセージと一致する場合、サーバーは回答できます。

       [[ "MDN/send", {
         "accountId": "ue150411c",
         "sent": {
           "k1546": {
             "finalRecipient": "rfc822; john@example.com",
             "originalMessageId": "<199509192301.23456@example.org>"
           }
         }
       }, "0" ],
       [ "Email/set", {
         "accountId": "ue150411c",
         "oldState": "23",
         "newState": "42",
         "updated": {
           "Md45b47b4877521042cec0938": {}
         }
       }, "0" ]]
        

If the "$mdnsent" keyword has already been set, the server can answer an error:

"$ mdnsent"キーワードがすでに設定されている場合、サーバーはエラーに応答できます。

        [[ "MDN/send", {
          "accountId": "ue150411c",
          "notSent": {
            "k1546": {
              "type": "mdnAlreadySent",
              "description" : "$mdnsent keyword is already present"
            }
          }
        }, "0" ]]
        
3.2. Asking for an MDN When Sending an Email Message
3.2. 電子メールメッセージを送信するときにMDNを求める

This is done with the "Email/set" "create" method of [RFC8621].

これは[RFC8621]の「Eメール/セット」「作成」メソッドで行われます。

   [[ "Email/set", {
     "accountId": "ue150411c",
     "create": {
       "k2657": {
         "mailboxIds": {
           "2ea1ca41b38e": true
         },
         "keywords": {
           "$seen": true,
           "$draft": true
         },
         "from": [{
           "name": "Joe Bloggs",
           "email": "joe@example.com"
         }],
         "to": [{
           "name": "John",
           "email": "john@example.com"
         }],
         "header:Disposition-Notification-To:asText": "joe@example.com",
         "subject": "World domination",
         ...
       }
     }
   }, "0" ]]
        

Note the specified "Disposition-Notification-To" header field indicating where to send the MDN (usually the sender of the message).

(通常はメッセージの送信者)を送信する場所を示す指定された「Disposition-Notification-to」ヘッダーフィールドに注意してください。

3.3. Parsing a Received MDN
3.3. 受信したMDNを解析します

The client issues a parse request:

クライアントは解析要求を発行します。

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

The server responds:

サーバーが応答します。

      [[ "MDN/parse", {
        "accountId": "ue150411c",
        "parsed": {
          "0f9f65ab-dc7b-4146-850f-6e4881093965": {
            "forEmailId": "Md45b47b4877521042cec0938",
            "subject": "Read receipt for: World domination",
            "textBody": "This receipt shows that the email has been
                displayed on your recipient's computer.  There is no
                guarantee it has been read or understood.",
            "reportingUA": "joes-pc.cs.example.com; Foomail 97.1",
            "disposition": {
              "actionMode": "manual-action",
              "sendingMode": "mdn-sent-manually",
              "type": "displayed"
            },
            "finalRecipient": "rfc822; john@example.com",
            "originalMessageId": "<199509192301.23456@example.org>"
          }
        }
      }, "0" ]]
        

In the case that a blob id is not found, the server would respond:

BLOB IDが見つからない場合は、サーバーが応答します。

         [[ "MDN/parse", {
           "accountId": "ue150411c",
           "notFound": [ "0f9f65ab-dc7b-4146-850f-6e4881093965" ]
         }, "0" ]]
        

If the blob id has been found but is not parsable, the server would respond:

BLOB IDが見つかったがパーセラブルではない場合、サーバーは応答します。

        [[ "MDN/parse", {
          "accountId": "ue150411c",
          "notParsable": [ "0f9f65ab-dc7b-4146-850f-6e4881093965" ]
        }, "0" ]]
        
4. IANA Considerations
4. IANAの考慮事項
4.1. JMAP Capability Registration for "mdn"
4.1. "MDN"のJMAP機能登録

This section registers the "mdn" JMAP Capability in the "JMAP Capabilities" registry as follows:

このセクションでは、次のように「JMAP機能」レジストリに "MDN" JMAP機能を登録します。

   Capability Name:  "urn:ietf:params:jmap:mdn"
   Intended Use:  common
   Change Controller:  IETF
   Security and Privacy Considerations:  This document, Section 5.
   Reference:  This document
        
4.2. JMAP Error Codes Registration for "mdnAlreadySent"
4.2. JMAPエラーコード「MDNALReadysent」の登録

IANA has registered one new error code in the "JMAP Error Codes" registry, as defined in [RFC8620].

[RFC8620]で定義されているように、IANAは「JMAPエラーコード」レジストリに1つの新しいエラーコードを登録しました。

JMAP Error Code: mdnAlreadySent Intended Use: common Change Controller: IETF Description: The message has the "$mdnsent" keyword already set. The client MUST NOT try again to send an MDN for this message. Reference: This document, Section 2.1

JMAPエラーコード:MDNALReadysentの使用目的:一般的な変更コントローラ:IETF説明:メッセージには "$ mdnsent"キーワードがすでに設定されています。クライアントはこのメッセージのMDNを送信するために再試行してはいけません。参照:この文書、セクション2.1

5. Security Considerations
5. セキュリティに関する考慮事項

The same considerations regarding MDN (see [RFC8098] and [RFC3503]) apply to this document.

MDNに関する同じ考察([RFC8098]および[RFC3503]参照)がこの文書に適用されます。

In order to reinforce trust regarding the relation between the user sending an email message and the identity of this user, the server SHOULD validate in conformance to the provided Identity that the user is permitted to use the "finalRecipient" value and return a "forbiddenFrom" error if not.

電子メールメッセージを送信するユーザとこのユーザの識別情報との関係に関して信頼を強化するために、ユーザが「最後のリセット」値を使用することが許可され、「forbiddenfrom」を返すことが許可されている提供された識別情報に適合するように検証するべきである。そうでない場合はエラーが発生します。

6. Normative References
6. 引用文献

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.

[RFC2119] BRADNER、S、「RFCSで使用するためのキーワード」、BCP 14、RFC 2119、DOI 10.17487 / RFC2119、1997年3月、<https://www.rfc-editor.org/info/RFC2119>。

[RFC3503] Melnikov, A., "Message Disposition Notification (MDN) profile for Internet Message Access Protocol (IMAP)", RFC 3503, DOI 10.17487/RFC3503, March 2003, <https://www.rfc-editor.org/info/rfc3503>.

[RFC3503]メルニコフ、A.、インターネットメッセージアクセスプロトコル(IMAP) "、RFC 3503、DOI 10.17487 / RFC3503、2003年3月、<https://ww.rfc-editor.org/情報/ RFC3503>。

[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, DOI 10.17487/RFC5322, October 2008, <https://www.rfc-editor.org/info/rfc5322>.

[RFC5322] Resnick、P.、Ed。、「インターネットメッセージフォーマット」、RFC 5322、DOI 10.17487 / RFC5322、2008年10月、<https://www.rfc-editor.org/info/rfc5322>。

[RFC8098] Hansen, T., Ed. and A. Melnikov, Ed., "Message Disposition Notification", STD 85, RFC 8098, DOI 10.17487/RFC8098, February 2017, <https://www.rfc-editor.org/info/rfc8098>.

[RFC8098]ハンセン、T.、ED。A. Melnikov、Ed。、「メッセージの保存通知」、STD 85、RFC 8098、DOI 10.17487 / RFC8098、2017年2月、<https://www.rfc-editor.org/info/rfc8098>。

[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8174] Leiba、B、「RFC 2119キーワードの大文字の曖昧さ」、BCP 14、RFC 8174、DOI 10.17487 / RFC8174、2017年5月、<https://www.rfc-editor.org/info/RFC8174>。

[RFC8620] Jenkins, N. and C. Newman, "The JSON Meta Application Protocol (JMAP)", RFC 8620, DOI 10.17487/RFC8620, July 2019, <https://www.rfc-editor.org/info/rfc8620>.

[RFC8620] Jenkins、N.およびC. Newman、「JSONメタApplication Protocol(JMAP)」、RFC 8620、DOI 10.17487 / RFC8620、2019年7月、<https://www.rfc-editor.org/info/rfc8620>。

[RFC8621] Jenkins, N. and C. Newman, "The JSON Meta Application Protocol (JMAP) for Mail", RFC 8621, DOI 10.17487/RFC8621, August 2019, <https://www.rfc-editor.org/info/rfc8621>.

[RFC8621] Jenkins、N.およびC. NEWMAN、「MAIN用JSONメタApplication Protocol(JMAP)」、RFC 8621、DOI 10.17487 / RFC8621、2019年8月、<https://www.rfc-editor.org/info/ RFC8621>。

Author's Address

著者の住所

Raphaël Ouazana (editor) Linagora 100 Terrasse Boieldieu - Tour Franklin 92042 Paris - La Défense CEDEX France

RaphaëlWaazana(編集)Linagora 100 Terrasse Biouldieu - Tour Franklin 92042 Paris - LaDéfenseCedexフランス

   Email: rouazana@linagora.com
   URI:   https://www.linagora.com