RFC 6533
Internationalized Delivery Status and Disposition Notifications
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 Notice
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 namesmessage/global,message/global-delivery-status, andmessage/global-headershave 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:
- in the ORCPT parameter when the SMTP server doesn't advertise support for SMTPUTF8 (utf-8-addr-xtext MUST be used instead); or
- 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
- 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:
- 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.
- 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
.u8hdris 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-headeris suggested. This type conforms topublic.utf8-plain-textandpublic.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
.u8dsnis suggested. - Macintosh file type code(s): A uniform type identifier (UTI) of
public.utf8-email-message-delivery-statusis suggested. This type conforms topublic.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
.u8mdnis suggested. - Macintosh file type code(s): A uniform type identifier (UTI) of
public.utf8-email-message-disposition-notificationis suggested. This type conforms topublic.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
- ietf: rfc6533 2012-02
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms