RFC 6533

Internationalized Delivery Status and Disposition Notifications

๐Ÿ“… published February 2012, from ietf

Internationalized Delivery Status and Disposition Notifications โœจ

Okay bestie, this RFC is from February 2012 and it's a Standards Track document ๐ŸŽ€. Three authors worked on it: T. Hansen, Ed. from AT&T Laboratories, C. Newman from Oracle, and A. Melnikov from Isode Ltd ๐Ÿซถ. It's identified by ISSN 2070-1721. It obsoletes RFC 5337 (the older version it replaces, so that one's retired now ๐Ÿ’€) and it updates RFC 3461, RFC 3464, RFC 3798, and RFC 6522 ๐ŸŒˆ. Keep that in mind, because updating means these existing specs get tweaked, not just ignored.

Abstract โœจ

Okay so, delivery status notifications (DSNs) are literally critical to email working properly ๐Ÿ’Œ. The problem is that the existing Draft Standards (RFC 3461, RFC 3464, RFC 6522) only handle ASCII text in the machine-readable parts of the protocol ๐Ÿ˜ญ. This spec adds a brand-new address type for international email addresses, so an original recipient address with non-ASCII characters can be preserved correctly even after downgrading ๐Ÿฆ‹. It also brings in updated content return media types for DSNs and message disposition notifications (MDNs), so everything works with that new address type ๐Ÿ’….

This document extends RFC 3461, RFC 3464, RFC 3798, and RFC 6522 ๐ŸŒธ.

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, received public review, and was approved for publication by the Internet Engineering Steering Group (IESG) ๐Ÿ‘‘. For more on Internet Standards, check out Section 2 of RFC 5741 โœจ.

Info about the current status of this document, any errata, and how to give feedback on it lives at http://www.rfc-editor.org/info/rfc6533 ๐Ÿงš.


Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved ๐ŸŽ€.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info), as in effect on the date this document was published. Please actually read these documents carefully, because they describe your rights and restrictions regarding this document ๐Ÿ™ˆ. Any Code Components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License โš ๏ธ.


Table of Contents ๐Ÿฆ‹

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
2.  Conventions Used in This Document  . . . . . . . . . . . . . .  3
3.  UTF-8 Address Type . . . . . . . . . . . . . . . . . . . . . .  3
4.  UTF-8 Delivery Status Notifications  . . . . . . . . . . . . .  6
  4.1.  The message/global-delivery-status Media Type  . . . . . .  6
  4.2.  The message/global Media Type  . . . . . . . . . . . . . .  8
  4.3.  The message/global-headers Media Type  . . . . . . . . . .  8
  4.4.  Using These Media Types with multipart/report  . . . . . .  8
  4.5.  Additional Requirements on SMTP Servers  . . . . . . . . .  9
5.  UTF-8 Message Disposition Notifications  . . . . . . . . . . .  9
6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 10
  6.1.  UTF-8 Mail Address Type Registration . . . . . . . . . . . 10
  6.2.  Update to 'smtp' Diagnostic Type Registration  . . . . . . 11
  6.3.  message/global-headers . . . . . . . . . . . . . . . . . . 11
  6.4.  message/global-delivery-status . . . . . . . . . . . . . . 12
  6.5.  message/global-disposition-notification  . . . . . . . . . 14
7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 15
8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
  8.1.  Normative References . . . . . . . . . . . . . . . . . . . 16
  8.2.  Informative References . . . . . . . . . . . . . . . . . . 17
Appendix A.  Changes since RFC 5337  . . . . . . . . . . . . . . . 18
Appendix B.  Acknowledgements  . . . . . . . . . . . . . . . . . . 18

1. Introduction ๐ŸŒท

Okay so picture this: an email goes out using the SMTPUTF8 [RFC6531] extension and Internationalized Email Headers [RFC6532]. Sometimes you need to send that message back, or generate a Message Disposition Notification (MDN) [RFC3798] about it ๐Ÿ“ฌ. A message sent to multiple recipients can produce a status and disposition notification for each recipient, so it's super helpful when a client can match these notifications up with the recipient address it originally gave. That's why keeping the original recipient intact matters so much ๐Ÿ’–.

This spec explains how to preserve the original recipient, and it updates the MDN and DSN formats so they support the new address types ๐Ÿ’….

NOTE: While this specification updates the experimental versions of this protocol by removing certain constructs (e.g., the "<addr <addr>>" address syntax is no longer permitted), the name of the Address Type "UTF-8" and the media type names message/global, message/global-delivery-status, and message/global-headers have not been changed ๐Ÿ™ˆ.

This specification is a revision of and replacement for [RFC5337]. Section 6 of [RFC6530] describes how this approach differs from the previous version ๐Ÿฆ‹.

2. Conventions Used in This Document ๐Ÿ“

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] ๐ŸŽ€.

The formal syntax uses the Augmented Backus-Naur Form (ABNF) [RFC5234] notation, including the core rules defined in Appendix B of [RFC5234], and the UTF-8 syntax rules in Section 4 of [RFC3629] ๐Ÿงš.

3. UTF-8 Address Type โœจ

okay so "An Extensible Message Format for Delivery Status Notifications" [RFC3464] already defines what an address type is ๐ŸŽ€. The address format from "Internationalized Email Headers" [RFC6532] is a brand-new address type, and it's giving main character energy ๐Ÿ‘‘. The syntax for it in status notifications is right at the end of this section ๐Ÿ’….

An SMTP [RFC5321] server that advertises both the SMTPUTF8 extension [RFC6531] and the DSN extension [RFC3461] MUST accept a UTF-8 address type in the ORCPT parameter, including 8-bit UTF-8 characters ๐Ÿซถ. This address type also has a 7-bit encoding ๐ŸŒธ, which is what you use in a message/delivery-status body part or in an ORCPT parameter sent to an SMTP server that does not advertise SMTPUTF8.

This address type comes in 3 forms: utf-8-addr-xtext, utf-8-addr-unitext, and utf-8-address. Only the first one is 7-bit safe (it only uses ASCII characters [ASCII]) ๐Ÿฆ‹.

The utf-8-address form is only for newly defined protocols that can handle 8-bit characters natively ๐Ÿ’œ. So the utf-8-address form MUST NOT be used:

  1. in the ORCPT parameter when the SMTP server doesn't advertise support for SMTPUTF8 (utf-8-addr-xtext MUST be used instead); or
  2. if the SMTP server supports SMTPUTF8, but the address contains ASCII characters that aren't allowed in the ORCPT parameter (for example, the ORCPT parameter forbids unencoded SP and the '=' character). In that case, either utf-8-addr-unitext or utf-8-addr-xtext MUST be used instead; or
  3. in a 7-bit transport environment, including a message/delivery-status "Original-Recipient:" or "Final-Recipient:" field. Here, utf-8-addr-xtext MUST be used instead.

The utf-8-address form MAY be used in the ORCPT parameter when the SMTP server also advertises support for SMTPUTF8 and the address doesn't contain any ASCII characters that aren't permitted in the ORCPT parameter ๐ŸŽ€. It SHOULD be used in a message/global-delivery-status "Original-Recipient:" or "Final-Recipient:" DSN field, or in an "Original-Recipient:" header field [RFC3798] if the message is an SMTPUTF8 message ๐Ÿ“.

On top of that, the utf-8-addr-unitext form can be used anywhere the utf-8-address form is allowed โœจ.

When you use the UTF-8 address type in the ORCPT parameter, ASCII CTLs, SP, '', '+', and '=' have to be encoded using 'unitext' encoding (see below) ๐Ÿ™ˆ. This is what the utf-8-addr-xtext and utf-8-addr-unitext forms in the ABNF below describe. The 'unitext' encoding uses the "\x{HEXPOINT}" syntax (EmbeddedUnicodeChar in the ABNF below) for any Unicode character outside the ASCII range, and also for CTLs, SP, '', '+', and '='. HEXPOINT is 2 to 6 hexadecimal digits. Why this is so good: it means you never need the xtext encoding from [RFC3461], because any ASCII characters that would need xtext escaping never show up in a unitext-encoded string ๐Ÿงš. When you're sending to a SMTPUTF8-capable server, native UTF-8 characters SHOULD be used instead of the EmbeddedUnicodeChar syntax described below ๐Ÿ’–. When you're sending to an SMTP server that does not advertise SMTPUTF8, the EmbeddedUnicodeChar syntax MUST be used instead of UTF-8 ๐Ÿ˜ญ.

When the ORCPT parameter is placed in a message/global-delivery-status "Original-Recipient:" field, the utf-8-addr-xtext form of the UTF-8 address type SHOULD be converted to the utf-8-address form (see the ABNF below) by removing the unitext encoding ๐ŸŒˆ. But here's the catch: if an address is labeled with the UTF-8 address type and doesn't follow utf-8 syntax, then it MUST be copied into the message/global-delivery-status field without any alteration ๐Ÿ’€.

The EmbeddedUnicodeChar encodings should be viewed as a transitional mechanism, so avoid them when you can ๐Ÿซถ. The hope is that as systems without SMTPUTF8 support become less common, these encodings can eventually be phased out โœจ.

In the ABNF below, every production that isn't defined in this document is defined in Appendix B of [RFC5234], in Section 4 of [RFC3629], or in [RFC3464] ๐Ÿ“š.

utf-8-type-addr     = "utf-8;" utf-8-enc-addr

utf-8-address       = Mailbox
  ; Mailbox as defined in [RFC6531].

utf-8-enc-addr      = utf-8-addr-xtext /
                      utf-8-addr-unitext /
                      utf-8-address

utf-8-addr-xtext    = 1*(QCHAR / EmbeddedUnicodeChar)
                      ; 7bit form of utf-8-addr-unitext.
                      ; Safe for use in the ORCPT [RFC3461]
                      ; parameter even when SMTPUTF8 SMTP
                      ; extension is not advertised.

utf-8-addr-unitext  = 1*(QUCHAR / EmbeddedUnicodeChar)
                    ; MUST follow utf-8-address ABNF when
                    ; dequoted.
                    ; Safe for using in the ORCPT [RFC3461]
                    ; parameter when SMTPUTF8 SMTP extension
                    ; is also advertised.

QCHAR              = %x21-2a / %x2c-3c / %x3e-5b / %x5d-7e
                    ; ASCII printable characters except
                    ; CTLs, SP, '\', '+', '='.

QUCHAR              = QCHAR / UTF8-2 / UTF8-3 / UTF8-4
                    ; ASCII printable characters except
                    ; CTLs, SP, '\', '+' and '=', plus
                    ; other Unicode characters encoded in UTF-8

EmbeddedUnicodeChar =   %x5C.78 "{" HEXPOINT "}"
                    ; starts with "\x"

HEXPOINT = ( ( "0"/"1" ) %x31-39 ) / "10" / "20" /
           "2B" / "3D" / "7F" /         ; all xtext-specials
           "5C" / (HEXDIG8 HEXDIG) /    ; 2-digit forms
           ( NZHEXDIG 2(HEXDIG) ) /     ; 3-digit forms
           ( NZDHEXDIG 3(HEXDIG) ) /    ; 4-digit forms excluding
           ( "D" %x30-37 2(HEXDIG) ) /  ; ... surrogate
           ( NZHEXDIG 4(HEXDIG) ) /     ; 5-digit forms
           ( "10" 4*HEXDIG )            ; 6-digit forms
           ; represents either "\" or a Unicode code point outside
           ; the ASCII repertoire

HEXDIG8             = %x38-39 / "A" / "B" / "C" / "D" / "E" / "F"
                    ; HEXDIG excluding 0-7
NZHEXDIG            = %x31-39 / "A" / "B" / "C" / "D" / "E" / "F"
                    ; HEXDIG excluding "0"
NZDHEXDIG           = %x31-39 / "A" / "B" / "C" / "E" / "F"
                    ; HEXDIG excluding "0" and "D"

4. UTF-8 Delivery Status Notifications ๐Ÿ’…

okay so a traditional delivery status notification [RFC3464] comes in a three-part multipart/report [RFC6522] container ๐ŸŽ. Part one is human-readable text describing the error. Part two is a 7-bit-only message/delivery-status. Part three is optional, and it's used either for content (message/rfc822) or for headers (text/rfc822-headers) when the message gets returned ๐Ÿ“ฌ. The current standard DSN format doesn't let you return undeliverable SMTPUTF8 messages, which is why three new media types were defined ๐Ÿ˜ค. (Fun fact: [RFC5337] introduced experimental versions of these media types ๐Ÿงช.)

4.1. The message/global-delivery-status Media Type

The first type, message/global-delivery-status, has the syntax of message/delivery-status with three changes ๐ŸŒธ. First, the charset is UTF-8, so any field MAY contain UTF-8 characters when that makes sense (see the ABNF below) ๐Ÿ’–. The "Diagnostic-Code:" field MAY contain UTF-8 as described in SMTPUTF8 [RFC6531], and it SHOULD be in i-default language [RFC2277] ๐ŸŒ. Second, systems that generate a message/global-delivery-status body part SHOULD use the utf-8-address form of the UTF-8 address type for every address with characters outside the ASCII repertoire โœจ. They SHOULD also up-convert the utf-8-addr-xtext or utf-8-addr-unitext form of a UTF-8 address type from the ORCPT parameter into the utf-8-address form in the "Original-Recipient:" field ๐Ÿฆ‹. Third, there's a new optional field called "Localized-Diagnostic:" ๐ŸŽ€. Each instance includes a language tag [RFC5646] and contains text in that language, which is the same as the text part of the "Diagnostic-Code:" field ๐Ÿซถ. All instances of "Localized-Diagnostic:" MUST use different language tags ๐Ÿ™ˆ. The ABNF for message/global-delivery-status is below.

In the ABNF below, every production that isn't defined in this document is defined in Appendix B of [RFC5234], in Section 4 of [RFC3629], or in [RFC3464] ๐Ÿ“š. Heads up: <text-fixed> is the same as <text> from [RFC5322], just without <obs-text> ๐Ÿ‘€. If or when RFC 5322 gets updated to disallow <obs-text>, <text-fixed> should become just <text> ๐Ÿ”ฎ. Also, if or when RFC 5322 gets updated to disallow control characters in <text>, <text-fixed> should become a reference to that update instead ๐Ÿงš.

utf-8-delivery-status-content = per-message-fields
                      1*( CRLF utf-8-per-recipient-fields )
     ; "per-message-fields" remains unchanged from the definition
     ; in RFC 3464, except for the "extension-field",
     ; which is updated below.

utf-8-per-recipient-fields =
      [ original-recipient-field CRLF ]
      final-recipient-field CRLF
      action-field CRLF
      status-field CRLF
      [ remote-mta-field CRLF ]
      [ diagnostic-code-field CRLF
        *(localized-diagnostic-text-field CRLF) ]
      [ last-attempt-date-field CRLF ]
          [ final-log-id-field CRLF ]
      [ will-retry-until-field CRLF ]
      *( extension-field CRLF )
  ; All fields except for "original-recipient-field",
  ; "final-recipient-field", "diagnostic-code-field",
  ; and "extension-field" remain unchanged from
  ; the definition in RFC 3464.

generic-address =/ utf-8-enc-addr
  ; Only allowed with the "utf-8" address-type.
  ; Updates Section 3.2.3 of RFC 3798.
  ;
  ; This indirectly updates "original-recipient-field"
  ; and "final-recipient-field".

diagnostic-code-field =
     "Diagnostic-Code" ":" diagnostic-type ";" *text-fixed

localized-diagnostic-text-field =
     "Localized-Diagnostic" ":" Language-Tag ";" *utf8-text
  ; "Language-Tag" is a language tag as defined in [RFC5646].

extension-field =/ extension-field-name ":" *utf8-text
  ; Updates Section 7 of RFC3798

text-fixed = %d1-9 /      ; Any ASCII character except for NUL,
             %d11 /       ; CR, and LF.
             %d12 /       ; See note above about <text-fixed>
             %d14-127

utf8-text = text-fixed / UTF8-non-ascii

UTF8-non-ascii   = UTF8-2 / UTF8-3 / UTF8-4

4.2. The message/global Media Type

The second type, the one used for returning content, is message/global ๐Ÿ’Œ. It's pretty much message/rfc822, except it contains a message with UTF-8 headers ๐ŸŒˆ. This media type is described in [RFC6532] ๐Ÿ“–.

4.3. The message/global-headers Media Type

The third type, used for returning headers, is message/global-headers ๐Ÿง. It contains only the UTF-8 header fields of a message, meaning all the lines before the first blank line in an SMTPUTF8 message ๐Ÿซง. The best part: unlike message/global, this body part causes no difficulties for the present infrastructure ๐Ÿฅนโœจ.

4.4. Using These Media Types with multipart/report ๐ŸŽ€

Okay bestie, so as far as a multipart/report [RFC6522] container is concerned, message/global-delivery-status, message/global, and message/global-headers MUST be treated as equivalent to message/delivery-status, message/rfc822, and text/rfc822-headers. ๐Ÿ’– That means implementations processing multipart/report MUST expect any combination of those 6 media types inside a multipart/report. It's giving total interchangeable energy โœจ

All three new types will typically use the "8bit" Content-Transfer-Encoding. ๐ŸŒธ If all the content is 7-bit, the traditional types for delivery status notifications MAY be used. For example, if the info in a message/global-delivery-status part can be represented without losing anything as message/delivery-status, then the message/delivery-status body part may be used. Also, [RFC6532] relaxed a restriction from MIME [RFC2046] about using Content-Transfer-Encoding in new "message" subtypes. This spec explicitly allows Content-Transfer-Encoding in message/global-headers and message/global-delivery-status. This isn't believed to be problematic, since these new media types are mainly meant for newer systems with full support for 8-bit MIME and UTF-8 headers ๐Ÿงš

4.5. Additional Requirements on SMTP Servers ๐Ÿฆ‹

Okay so if an SMTP server that advertises both SMTPUTF8 and DSN needs to return an undeliverable SMTPUTF8 message, it has two choices for encapsulating the SMTPUTF8 message when it generates the corresponding multipart/report:

  1. If the return-path SMTP server does not support SMTPUTF8, then the undeliverable body part and headers MUST be encoded using a 7-bit Content-Transfer-Encoding such as "base64" or "quoted-printable" [RFC2045], as detailed in Section 4.
  2. Otherwise, "8bit" Content-Transfer-Encoding can be used.

5. UTF-8 Message Disposition Notifications ๐Ÿ’œ

Message Disposition Notifications [RFC3798] have a similar design and structure to DSNs, so they use the same basic return format. ๐Ÿซถ When you generate an MDN for a UTF-8 header message, the third part of the multipart/report contains the returned content (message/global) or header (message/global-headers), same as for DSNs. The second part of the multipart/report uses a new media type, message/global-disposition-notification, which has the syntax of message/disposition-notification with two modifications. ๐Ÿ“

First, the charset for message/global-disposition-notification is UTF-8, so any field MAY contain UTF-8 characters when appropriate (see the ABNF below). In particular, the failure-field, the error-field, and the warning-field MAY contain UTF-8. These fields SHOULD be in i-default language [RFC2277]. Second, systems generating a message/global-disposition-notification body part (typically a mail user agent) SHOULD use the UTF-8 address type for all addresses containing characters outside the ASCII repertoire. ๐Ÿ‘‘

The MDN spec also defines the "Original-Recipient:" header field, which gets added with a copy of the contents of ORCPT at delivery time. When generating an "Original-Recipient:" header field, a delivery agent writing a UTF-8 header message in native format SHOULD convert the utf-8-addr-xtext or the utf-8-addr-unitext form of a UTF-8 address type in the ORCPT parameter to the corresponding utf-8-address form. ๐ŸŒˆ

The MDN spec also defines the "Disposition-Notification-To:" header field. It's an address header field, so it follows the same 8-bit rules as other address header fields such as "From:" and "To:" when used in a UTF-8 header message. ๐Ÿ’…

; ABNF for "original-recipient-header", "original-recipient-field",
; and "final-recipient-field" from RFC 3798 is implicitly updated
; as they use the updated "generic-address" as defined in
; Section 4 of this document.

failure-field = "Failure" ":" *utf8-text
; "utf8-text" is defined in Section 4 of this document.

error-field = "Error" ":" *utf8-text
; "utf8-text" is defined in Section 4 of this document.

warning-field = "Warning" ":" *utf8-text
; "utf8-text" is defined in Section 4 of this document.

6. IANA Considerations ๐ŸŒธ

This specification does not create any new IANA registries. ๐Ÿ™ˆ However, the following items have been registered as a result of this document. โœจ

6.1. UTF-8 Mail Address Type Registration ๐Ÿฆ‹

The mail address type registry was created by [RFC3464]. The registration template response follows:

(a) The address-type name. UTF-8

(b) The syntax for mailbox addresses of this type, specified using BNF, regular expressions, ASN.1, or other non-ambiguous language. See Section 3.

(c) If addresses of this type are not composed entirely of graphic characters from the ASCII repertoire, a specification for how they are to be encoded as graphic ASCII characters in an "Original-Recipient:" or "Final-Recipient:" DSN field. This address type has 3 forms (as defined in Section 3): utf-8-addr-xtext, utf-8-addr-unitext, and utf-8-address. Only the first form is 7-bit safe. ๐Ÿ”ฅ

6.2. Update to 'smtp' Diagnostic Type Registration ๐Ÿ’–

The mail diagnostic type registry was created by [RFC3464] and updated by [RFC5337]. This specification replaces [RFC5337]. The registration for the 'smtp' diagnostic type has been updated to reference RFC 6533 in addition to [RFC3464], and to remove the reference to [RFC5337].

When the 'smtp' diagnostic type is used in the context of a message/delivery-status body part, it remains as presently defined. When the 'smtp' diagnostic type is used in the context of a message/global-delivery-status body part, the codes remain the same, but the text portion MAY contain UTF-8 characters. ๐ŸŽ€

6.3. message/global-headers ๐Ÿงš

Here's the registration template, bestie ๐Ÿ“‹

  • Type name: message
  • Subtype name: global-headers
  • Required parameters: none
  • Optional parameters: none
  • Encoding considerations: This media type contains Internationalized Email Headers [RFC6532] with no message body. Whenever possible, the 8-bit content transfer encoding SHOULD be used. When this media type passes through a 7-bit-only SMTP infrastructure, it MAY be encoded with the base64 or quoted-printable content transfer encoding.
  • Security considerations: See Section 7.
  • Interoperability considerations: It is important that this media type is not converted to a charset other than UTF-8. As a result, implementations MUST NOT include a charset parameter with this media type. Although it might be possible to down-convert this media type to the text/rfc822-header media type, such conversion is discouraged as it loses information.
  • Published specification: RFC 6533
  • Applications that use this media type: SMTPUTF8 servers and email clients that support multipart/report generation or parsing.
  • Additional information:
    • Magic number(s): none
    • File extension(s): In the event this is saved to a file, the extension .u8hdr is suggested.
    • Macintosh file type code(s): The 'TEXT' type code is suggested as files of this type are typically used for diagnostic purposes and suitable for analysis in a UTF-8-aware text editor. A uniform type identifier (UTI) of public.utf8-email-message-header is suggested. This type conforms to public.utf8-plain-text and public.plain-text.
  • Person & email address to contact for further information: See the Authors' Addresses section of this document.
  • Intended usage: COMMON
  • Restrictions on usage: This media type contains textual data in the UTF-8 charset. It typically contains octets with the 8th bit set. As a result, a transfer encoding is required when a 7-bit transport is used.
  • Author: See the Authors' Addresses section of this document.
  • Change controller: IETF Standards Process

6.4. message/global-delivery-status ๐ŸŒˆ

Here's the next one, same vibe ๐Ÿ’…

  • Type name: message
  • Subtype name: global-delivery-status
  • Required parameters: none
  • Optional parameters: none
  • Encoding considerations: This media type contains delivery status notification attributes in the UTF-8 charset. The 8-bit content transfer encoding MUST be used with this content-type, unless it is sent over a 7-bit transport environment, in which case quoted-printable or base64 may be necessary.
  • Security considerations: See Section 7
  • Interoperability considerations: This media type provides functionality similar to the message/delivery-status content-type for email message return information. Clients of the previous format will need to be upgraded to interpret the new format; however, the new media type makes it simple to identify the difference.
  • Published specification: RFC 6533
  • Applications that use this media type: SMTP servers and email clients that support delivery status notification generation or parsing.
  • Additional information:
    • Magic number(s): none
    • File extension(s): The extension .u8dsn is suggested.
    • Macintosh file type code(s): A uniform type identifier (UTI) of public.utf8-email-message-delivery-status is suggested. This type conforms to public.utf8-plain-text.
  • Person & email address to contact for further information: See the Authors' Addresses section of this document.
  • Intended usage: COMMON
  • Restrictions on usage: This is expected to be the second part of a multipart/report.
  • Author: See the Authors' Addresses section of this document.
  • Change controller: IETF Standards Process

6.5. message/global-disposition-notification ๐Ÿ’œ

And the last registration in this batch โœจ

  • Type name: message
  • Subtype name: global-disposition-notification
  • Required parameters: none
  • Optional parameters: none
  • Encoding considerations: This media type contains disposition notification attributes in the UTF-8 charset. The 8-bit content transfer encoding MUST be used with this content-type, unless it is sent over a 7-bit transport environment, in which case quoted-printable or base64 may be necessary.
  • Security considerations: See Section 7.
  • Interoperability considerations: This media type provides functionality similar to the message/disposition-notification content-type for email message disposition information. Clients of the previous format will need to be upgraded to interpret the new format; however, the new media type makes it simple to identify the difference.
  • Published specification: RFC 6533
  • Applications that use this media type: Email clients or servers that support message disposition notification generation or parsing.
  • Additional information:
    • Magic number(s): none
    • File extension(s): The extension .u8mdn is suggested.
    • Macintosh file type code(s): A uniform type identifier (UTI) of public.utf8-email-message-disposition-notification is suggested. This type conforms to public.utf8-plain-text.
  • Person & email address to contact for further information: See the Authors' Addresses section of this document.
  • Intended usage: COMMON
  • Restrictions on usage: This is expected to be the second part of a multipart/report.
  • Author: See the Authors' Addresses section of this document.
  • Change controller: IETF Standards Process

7. Security Considerations ๐Ÿ”’โœจ

Okay, bestie, this section is seriously important ๐Ÿ’€. Automated use of report types without authentication opens up several security issues. Forging negative reports creates a denial-of-service opportunity when the reports are used for automated maintenance of directories or mailing lists ๐Ÿ™ˆ. Forging positive reports can make the sender incorrectly believe a message was delivered when it wasn't ๐Ÿ˜ญ.

Malicious users can build report structures designed to trigger coding flaws in report parsers. Parsers need secure coding techniques to avoid buffer overflow risk or denial-of-service attacks caused by parser coding mistakes. Code reviews of these parsers are also recommended ๐Ÿง.

Malicious users of the email system regularly send messages with forged envelope return paths, and those messages trigger delivery status reports that flood the Internet with a huge amount of unwanted traffic ๐ŸŒŠ. Lots of users ignore delivery status notifications because they're usually "blowback" from forged messages, so they never notice when the messages they sent go undelivered. That's why support for correlating delivery status and message disposition notification messages with sent messages has become a critical feature of mail clients and possibly mail stores, if the email infrastructure is going to stay reliable ๐Ÿ‘‘. In the short term, simply correlating Message-IDs may be enough to tell true status notifications apart from ones caused by forged originator addresses. But in the longer term, including cryptographic signature material that can securely associate the status notification with the original message is advisable ๐Ÿ”.

As this specification permits UTF-8 in additional fields, the security considerations of UTF-8 [RFC3629] apply ๐ŸŽ€.


8. References ๐Ÿ“š

8.1. Normative References

[ASCII]    American National Standards Institute (formerly United
           States of America Standards Institute), "USA Code for
           Information Interchange", ANSI X3.4-1968, 1968.

           ANSI X3.4-1968 has been replaced by newer versions with
           slight modifications, but the 1968 version remains
           definitive for the Internet.

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2277]  Alvestrand, H., "IETF Policy on Character Sets and
           Languages", BCP 18, RFC 2277, January 1998.

[RFC3461]  Moore, K., "Simple Mail Transfer Protocol (SMTP) Service
           Extension for Delivery Status Notifications (DSNs)",
           RFC 3461, January 2003.

[RFC3464]  Moore, K. and G. Vaudreuil, "An Extensible Message Format
           for Delivery Status Notifications", RFC 3464,
           January 2003.

[RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO
           10646", STD 63, RFC 3629, November 2003.

[RFC3798]  Hansen, T. and G. Vaudreuil, "Message Disposition
           Notification", RFC 3798, May 2004.

[RFC5234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
           Specifications: ABNF", STD 68, RFC 5234, January 2008.

[RFC5321]  Klensin, J., "Simple Mail Transfer Protocol", RFC 5321,
           October 2008.

[RFC5322]  Resnick, P., Ed., "Internet Message Format", RFC 5322,
           October 2008.

[RFC5646]  Phillips, A. and M. Davis, "Tags for Identifying
           Languages", BCP 47, RFC 5646, September 2009.

[RFC6522]  Kucherawy, M., Ed., "The Multipart/Report Media Type for
           the Reporting of Mail System Administrative Messages", STD
           73, RFC 6522, January 2012.

[RFC6530]  Klensin, J. and Y. Ko, "Overview and Framework for
           Internationalized Email", RFC 6530, February 2012.

[RFC6531]  Yao, J. and W. Mao, "SMTP Extension for Internationalized
           Email", RFC 6531, February 2012.

[RFC6532]  Yang, A., Steele, S., and N. Freed, "Internationalized
           Email Headers", RFC 6532, February 2012.

8.2. Informative References

[RFC2045]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
           Extensions (MIME) Part One: Format of Internet Message
           Bodies", RFC 2045, November 1996.

[RFC2046]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
           Extensions (MIME) Part Two: Media Types", RFC 2046,
           November 1996.

[RFC5337]  Newman, C. and A. Melnikov, "Internationalized Delivery
           Status and Disposition Notifications", RFC 5337,
           September 2008.

Appendix A. Changes since RFC 5337 ๐ŸŒธ

Changes were made to move from Experimental to Standards Track. The biggest one was removing an embedded alternative ASCII address within a utf-8-address, plus reflecting the ABNF changes in [RFC6531] ๐Ÿฆ‹.

Fixed the description of utf-8-addr-xtext and utf-8-addr-unitext ๐Ÿ”ง.

References to Downgrade and uMailbox were removed or fixed ๐Ÿงน.

ABNF changes and fixed errata were submitted by Alfred Hoenes ๐Ÿ’….

There were minor changes to MIME type references ๐Ÿ“.

Other minor corrections were made too โœจ.

Appendix B. Acknowledgements ๐Ÿซถ

Many thanks for the input from Pete Resnick, James Galvin, Ned Freed, John Klensin, Harald Alvestrand, Frank Ellermann, SM, Alfred Hoenes, Kazunori Fujiwara, and members of the EAI working group, who all helped solidify this proposal ๐Ÿ’œ.


Authors' Addresses ๐Ÿ’Œ

Tony Hansen (editor)
AT&T Laboratories
200 Laurel Ave.
Middletown, NJ  07748
US

EMail: tony+eaidsn@maillennium.att.com


Chris Newman
Oracle
800 Royal Oaks
Monrovia, CA  91016-6347
US

EMail: chris.newman@oracle.com


Alexey Melnikov
Isode Ltd
5 Castle Business Village
36 Station Road
Hampton, Middlesex  TW12 2BX
UK

EMail: Alexey.Melnikov@isode.com
๐Ÿ“ฆ where this page comes from