[2] [DFN[[[媒体型]] [CODE(MIME)[multipart/report]]]]
は、[[電子メイル]]・システムの各種の報告[[メッセージ]]のための汎用的な[[包含子]]的書式です。
[[MIME]] の [CODE(MIME)[[[multipart/[VAR[*]]]]]]
の構文を基本に、 [[DSN]] や [[MDN]] 
など報告の種類に応じた具体的な形式が別途規定されています。

[3] 仕様書:
- [RFC-REPORT]
== [DEL[[[RFC 1892]] <urn:ietf:rfc:1892>]] ([[IETF]] [[提案標準]])
== [[RFC 3462]] <urn:ietf:rfc:3462> ([[IETF]] [[原案標準]])

[4]
:媒体型名:[CODE(MIME)[multipart/report]]
:[CODE(MIME)[[[multipart/report]]]]:規定無し
:[[素片識別子]]:規定無し
:[[内容転送符号化]]:常に [CODE(MIME)[[[7bit]]]]
:[[引数]]:
,引数名	,引数値	,既定値	,説明	,状態	,出典
,[CODE(MIME)[[[boundary]]]]	,	,(必須)	,多部分境界	,[[IETF]] [[提案標準]]	,[[MIME]]
,[CODE(MIME)[[[report-type]]]]	,媒体亜型	,(必須)	,報告の種類	,[[IETF]] [[提案標準]]	,"[[RFC 1892]], [[RFC 3462]]"


[5] この媒体型は [[822]] [[メッセージ]]の一番外側
[WEAK[([CODE(MIME)[[[multipart/[VAR[*]]]]]] 内でないところ)]] 
で使用します [SRC[RFC-REPORT 1.]]。

[1] [[引数]] [CODE(MIME)[[[report-type]]]] の値は、
第2部分の[[媒体型]]の亜型 [WEAK[(斜線の後の部分)]]
でなければなりません [SRC[RFC-REPORT 1.]]。

* 構文

[7] 基本的には [CODE(MIME)[[[multipart/[VAR[*]]]]]]
の構文をそのまま利用します。含まれる各[[実体]]の境界は
[CODE(MIME)[[[boundary]]]] [[引数]]を元に決定されます。

[[#comment]]


** 部分

[8] [CODE(MIME)[[[multipart/report]]]] [[実体]]は、
中に2つか3つの[[実体]]を持ちます。

[[#comment]]


*** 第1部分 —— 人間可読メッセージ

[9] 第1部分は人間可読なメッセージとします。
その内容は、報告する事項をわかりやすく解説したものとします。
第2部分を[[利用者エージェント]]が理解できなくてもこの部分から人間利用者が報告の意味を理解できます。
また、第2部分で形式的に記述できないことの説明にも使えます。
[SRC[RFC-REPORT 1.]]

[10] '''媒体型・言語''': 記述の方法は任意の[[標準化過程]]の[[媒体型]]、
[[charset]]、[[言語]]を使って構いません。
[CODE(MIME)[[[multipart/alternative]]]]
により複数種類を同梱することもできます。
[SRC[RFC-REPORT 1.]]

[11] '''省略''': この部分は必須です。
[SRC[RFC-REPORT 1.]]

[[#comment]]


*** 第2部分 —— 機械可読報告

[12] 報告する内容についての詳しい情報を機械可読な形式で入れます。
第1部分で説明しなかった細かい内容も含めることができます。
[SRC[RFC-REPORT 1.]]

[13] この部分が [CODE(MIME)[[[multipart/report]]]]
メッセージ全体を特徴付けることになります。
[CODE(MIME)[[[multipart/report]]]] [[媒体型]]の
[CODE(MIME)[[[report-type]]]] [[引数]]には、
この第2部分の[[媒体型]]の亜型を指定します。
[SRC[RFC-REPORT 1.]]

[22] '''媒体型''': この部分で使用する[[媒体型]]については特に制限はないようで、
>>12 の目的を果たせるなら何でも良いと思われます。
今のところ標準化されているものは全て
[CODE(MIME)[[[message/[VAR[*]]]]]] ですが、
そのような制限もないようです。

[14] '''省略''': この部分は必須です。
[SRC[RFC-REPORT 1.]]

[[#comment]]


*** 第3部分 —— 元のメッセージ

[15] 第3部分には報告の対象となった元のメッセージの一部又は全部を含めることができます。
この情報は人間の専門家が問題の分析のために使うことができます。
[WEAK[(報告を受け取った側で自動的に対応する元のメッセージを決定するために使うこともできますが、そのための情報は第2部分に含めることが想定されています。)]]
[SRC[RFC-REPORT 1.]]

[16] 元のメッセージを報告に含めるかどうか、
含めるとしたら全部含めるか、
どの部分を含めるかは報告の種類と報告の要求者の希望などによります。
詳しくは各報告種の説明をご覧下さい。

[17] [CODE(MIME)[[[multipart/report]]]] [[媒体型]]自体は常に
[CODE(MIME)[[[Content-Transfer-Encoding]]]] が [CODE(MIME)[[[7bit]]]]
とされています。第3部分に含める[[メッセージ]]は通常
[CODE(MIME)[[[message/[VAR[*]]]]]] なので、
やはり規定により [CODE(MIME)[[[7bit]]]] か [CODE(MIME)[[[8bit]]]]
か [CODE(MIME)[[[binary]]]] に制限されてしまいます。

第3部分に含める[[メッセージ]]が [CODE(MIME)[[[7bit]]]]
で表現できない場合、合法的な [CODE(MIME)[[[7bit]]]] [[MIME]]
[[メッセージ]]になるように再符号化しても'''構いません'''し、
[[頭部]]だけを取り出して [CODE(MIME)[[[text/rfc822-headers]]]]
[[媒体型]]としても'''構いません'''。[SRC[RFC-REPORT 1.]]

[CODE(MIME)[[[text/rfc822-headers]]]] 
だけなら任意の[[内容転送符号化]]が使えますし、
通常診断には[[頭部]]があれば十分ということなのでしょう。

[22] '''媒体型''': この部分に使用する[[媒体型]]は、
>>17 の通り [CODE(MIME)[[[text/rfc822-headers]]]]
を使うことが特に提案されていることを除き、
特に制限されていないようです。
報告の種類によっては具体的に規定があるかもしれません。

[21] '''省略''': この部分は省略可能です。 [SRC[RFC-REPORT 1.]]

[[#comment]]


* 応用

[20]
,[CODE(MIME)[[[report-type]]]]	,[[媒体型]]	,説明	,状態	,出典
,[CODE(MIME)[delivery-status]]	,[CODE(MIME)[[[message/delivery-status]]]]	,[[DSN]]	,[[IETF]] [[原案標準]]	,[RFC]
,[CODE(MIME)[disposition-notification]]	,[CODE(MIME)[[[message/disposition-notification]]]]	,[[MDN]]	,[[IETF]] [[原案標準]]	,[RFC]
,[CODE(MIME)[tracking-status]]	,[CODE(MIME)[[[message/tracking-status]]]]	,[[MTSN]]	,[[IETF]] [[提案標準]]	,[[RFC 3886]]
,[CODE(MIME)@en[[[feedback-report]]]],[CODE(MIME)@en[[[message/feedback-report]]]]

* 利用者エージェント・関門

[6] [[利用者エージェント]]と[[関門]]は、 [[822]]
[[メッセージ]]最外 [CODE(MIME)[[[Content-Type]]]]
を見て、[[メッセージ]]がメッセージ・システムからの報告であることを決定しなければなりませんし、
そうであるとして処理するべきです [SRC[RFC-REPORT 1.]]。

[[#comment]]


* 安全性

[18] [[インターネット]]の[[電子メイル]]・システムでは比較的簡単に[[なりすまし]]が行えてしまいます。
[CODE(MIME)[[[multipart/report]]]] の報告を捏造することも可能ですから、
報告を受信した側で自動処理を行う時は安全への配慮を怠ってはなりません。

[19] [CODE(MIME)[[[multipart/report]]]] 全体に[[署名]]するようなことも可能ですが、
[[RFC 3462]] は適用範囲外であるとして特にその方法を定めてはいません。

[[#comment]]


* メモ

[823] [CITE@en[RFC 6591 - Authentication Failure Reporting Using the Abuse Reporting Format]]
( ([TIME[2012-07-16 01:25:11 +09:00]] 版))
<http://tools.ietf.org/html/rfc6591>

[824] [CITE@en[RFC 6650 - Creation and Use of Email Feedback Reports: An Applicability Statement for the Abuse Reporting Format (ARF)]]
( ([TIME[2012-06-26 04:16:19 +09:00]] 版))
<http://tools.ietf.org/html/rfc6650>

[23] [CITE@en[RFC 8098 - Message Disposition Notification]]
([TIME[2017-03-02 23:20:54 +09:00]])
<https://tools.ietf.org/html/rfc8098#section-3>

[24] [CITE@en[RFC 4249: Implementer-Friendly Specification of Message and MIME-Part Header Fields and Field Components]], [TIME[2021-08-17T12:03:23.000Z]] <https://www.rfc-editor.org/rfc/rfc4249.html#section-3.1.2.2.6>