rfc9755v3.txt   rfc9755.txt 
Internet Engineering Task Force (IETF) P. Resnick Internet Engineering Task Force (IETF) P. Resnick
Request for Comments: 9755 Episteme Request for Comments: 9755 Episteme
Obsoletes: 6855 J. Yao Obsoletes: 6855 J. Yao
Category: Standards Track CNNIC Category: Standards Track CNNIC
ISSN: 2070-1721 A. Gulbrandsen ISSN: 2070-1721 A. Gulbrandsen
ICANN ICANN
February 2025 March 2025
IMAP Support for UTF-8 IMAP Support for UTF-8
Abstract Abstract
This specification extends the Internet Message Access Protocol, This specification extends the Internet Message Access Protocol,
specifically IMAP4rev1 (RFC 3501), to support UTF-8 encoded specifically IMAP4rev1 (RFC 3501), to support UTF-8 encoded
international characters in user names, mail addresses, and message international characters in user names, mail addresses, and message
headers. This specification replaces RFC 6855. This specification headers. This specification replaces RFC 6855. This specification
does not extend IMAP4rev2 (RFC 9051), since that protocol includes does not extend IMAP4rev2 (RFC 9051), since that protocol includes
skipping to change at line 126 skipping to change at line 126
A client MUST use the "ENABLE" command [RFC5161] with the A client MUST use the "ENABLE" command [RFC5161] with the
"UTF8=ACCEPT" option (defined in Section 4 below) to indicate to the "UTF8=ACCEPT" option (defined in Section 4 below) to indicate to the
server that the client accepts UTF-8 in quoted-strings and supports server that the client accepts UTF-8 in quoted-strings and supports
the "UTF8=ACCEPT" extension. The "ENABLE UTF8=ACCEPT" command is the "UTF8=ACCEPT" extension. The "ENABLE UTF8=ACCEPT" command is
only valid in the authenticated state. only valid in the authenticated state.
The IMAP base specification [RFC3501] forbids the use of 8-bit The IMAP base specification [RFC3501] forbids the use of 8-bit
characters in atoms or quoted-strings. Thus, a UTF-8 string can only characters in atoms or quoted-strings. Thus, a UTF-8 string can only
be sent as a literal. This can be inconvenient from a coding be sent as a literal. This can be inconvenient from a coding
standpoint, and unless the server offers IMAP non-synchronizing standpoint, and unless the server offers IMAP non-synchronizing
literals [RFC2088], this requires an extra round trip for each UTF-8 literals [RFC7888], this requires an extra round trip for each UTF-8
string sent by the client. When the IMAP server supports string sent by the client. When the IMAP server supports
"UTF8=ACCEPT", it supports UTF-8 in quoted-strings with the following "UTF8=ACCEPT", it supports UTF-8 in quoted-strings with the following
ABNF syntax [RFC5234]: ABNF syntax [RFC5234]:
quoted =/ DQUOTE *uQUOTED-CHAR DQUOTE quoted =/ DQUOTE *uQUOTED-CHAR DQUOTE
; QUOTED-CHAR is not modified, as it will affect ; QUOTED-CHAR is not modified, as it will affect
; other RFC 3501 ABNF non-terminals. ; other RFC 3501 ABNF non-terminals.
uQUOTED-CHAR = QUOTED-CHAR / UTF8-2 / UTF8-3 / UTF8-4 uQUOTED-CHAR = QUOTED-CHAR / UTF8-2 / UTF8-3 / UTF8-4
skipping to change at line 354 skipping to change at line 354
* UTF8=ALL (OBSOLETE) * UTF8=ALL (OBSOLETE)
* UTF8=APPEND (OBSOLETE) * UTF8=APPEND (OBSOLETE)
* UTF8=ONLY * UTF8=ONLY
* UTF8=USER (OBSOLETE) * UTF8=USER (OBSOLETE)
11. Security Considerations 11. Security Considerations
The security considerations of UTF-8 [RFC3629] and SASLprep [RFC4013] The security considerations of UTF-8 [RFC3629] and SASLprep [RFC8265]
apply to this specification, particularly with respect to use of apply to this specification, particularly with respect to use of
UTF-8 in usernames and passwords. Otherwise, this is not believed to UTF-8 in usernames and passwords. Otherwise, this is not believed to
alter the security considerations of IMAP. alter the security considerations of IMAP.
Special considerations, some of them with security implications, Special considerations, some of them with security implications,
occur if a server that conforms to this specification is accessed by occur if a server that conforms to this specification is accessed by
a client that does not, as well as in some more complex situations in a client that does not, as well as in some more complex situations in
which a given message is accessed by multiple clients that might use which a given message is accessed by multiple clients that might use
different protocols and/or support different capabilities. Those different protocols and/or support different capabilities. Those
issues are discussed in Section 8. issues are discussed in Section 8.
skipping to change at line 383 skipping to change at line 383
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION [RFC3501] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003, 4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003,
<https://www.rfc-editor.org/info/rfc3501>. <https://www.rfc-editor.org/info/rfc3501>.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
2003, <https://www.rfc-editor.org/info/rfc3629>. 2003, <https://www.rfc-editor.org/info/rfc3629>.
[RFC4013] Zeilenga, K., "SASLprep: Stringprep Profile for User Names
and Passwords", RFC 4013, DOI 10.17487/RFC4013, February
2005, <https://www.rfc-editor.org/info/rfc4013>.
[RFC5161] Gulbrandsen, A., Ed. and A. Melnikov, Ed., "The IMAP [RFC5161] Gulbrandsen, A., Ed. and A. Melnikov, Ed., "The IMAP
ENABLE Extension", RFC 5161, DOI 10.17487/RFC5161, March ENABLE Extension", RFC 5161, DOI 10.17487/RFC5161, March
2008, <https://www.rfc-editor.org/info/rfc5161>. 2008, <https://www.rfc-editor.org/info/rfc5161>.
[RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network [RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network
Interchange", RFC 5198, DOI 10.17487/RFC5198, March 2008, Interchange", RFC 5198, DOI 10.17487/RFC5198, March 2008,
<https://www.rfc-editor.org/info/rfc5198>. <https://www.rfc-editor.org/info/rfc5198>.
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
Specifications: ABNF", STD 68, RFC 5234, Specifications: ABNF", STD 68, RFC 5234,
skipping to change at line 416 skipping to change at line 412
February 2012, <https://www.rfc-editor.org/info/rfc6530>. February 2012, <https://www.rfc-editor.org/info/rfc6530>.
[RFC6532] Yang, A., Steele, S., and N. Freed, "Internationalized [RFC6532] Yang, A., Steele, S., and N. Freed, "Internationalized
Email Headers", RFC 6532, DOI 10.17487/RFC6532, February Email Headers", RFC 6532, DOI 10.17487/RFC6532, February
2012, <https://www.rfc-editor.org/info/rfc6532>. 2012, <https://www.rfc-editor.org/info/rfc6532>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
12.2. Informative References [RFC8265] Saint-Andre, P. and A. Melnikov, "Preparation,
Enforcement, and Comparison of Internationalized Strings
Representing Usernames and Passwords", RFC 8265,
DOI 10.17487/RFC8265, October 2017,
<https://www.rfc-editor.org/info/rfc8265>.
[RFC2088] Myers, J., "IMAP4 non-synchronizing literals", RFC 2088, 12.2. Informative References
DOI 10.17487/RFC2088, January 1997,
<https://www.rfc-editor.org/info/rfc2088>.
[RFC2342] Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342, [RFC2342] Gahrns, M. and C. Newman, "IMAP4 Namespace", RFC 2342,
DOI 10.17487/RFC2342, May 1998, DOI 10.17487/RFC2342, May 1998,
<https://www.rfc-editor.org/info/rfc2342>. <https://www.rfc-editor.org/info/rfc2342>.
[RFC4314] Melnikov, A., "IMAP4 Access Control List (ACL) Extension", [RFC4314] Melnikov, A., "IMAP4 Access Control List (ACL) Extension",
RFC 4314, DOI 10.17487/RFC4314, December 2005, RFC 4314, DOI 10.17487/RFC4314, December 2005,
<https://www.rfc-editor.org/info/rfc4314>. <https://www.rfc-editor.org/info/rfc4314>.
[RFC5530] Gulbrandsen, A., "IMAP Response Codes", RFC 5530, [RFC5530] Gulbrandsen, A., "IMAP Response Codes", RFC 5530,
skipping to change at line 451 skipping to change at line 449
[RFC6857] Fujiwara, K., "Post-Delivery Message Downgrading for [RFC6857] Fujiwara, K., "Post-Delivery Message Downgrading for
Internationalized Email Messages", RFC 6857, Internationalized Email Messages", RFC 6857,
DOI 10.17487/RFC6857, March 2013, DOI 10.17487/RFC6857, March 2013,
<https://www.rfc-editor.org/info/rfc6857>. <https://www.rfc-editor.org/info/rfc6857>.
[RFC6858] Gulbrandsen, A., "Simplified POP and IMAP Downgrading for [RFC6858] Gulbrandsen, A., "Simplified POP and IMAP Downgrading for
Internationalized Email", RFC 6858, DOI 10.17487/RFC6858, Internationalized Email", RFC 6858, DOI 10.17487/RFC6858,
March 2013, <https://www.rfc-editor.org/info/rfc6858>. March 2013, <https://www.rfc-editor.org/info/rfc6858>.
[RFC7888] Melnikov, A., Ed., "IMAP4 Non-synchronizing Literals",
RFC 7888, DOI 10.17487/RFC7888, May 2016,
<https://www.rfc-editor.org/info/rfc7888>.
[RFC8620] Jenkins, N. and C. Newman, "The JSON Meta Application [RFC8620] Jenkins, N. and C. Newman, "The JSON Meta Application
Protocol (JMAP)", RFC 8620, DOI 10.17487/RFC8620, July Protocol (JMAP)", RFC 8620, DOI 10.17487/RFC8620, July
2019, <https://www.rfc-editor.org/info/rfc8620>. 2019, <https://www.rfc-editor.org/info/rfc8620>.
[RFC9051] Melnikov, A., Ed. and B. Leiba, Ed., "Internet Message [RFC9051] Melnikov, A., Ed. and B. Leiba, Ed., "Internet Message
Access Protocol (IMAP) - Version 4rev2", RFC 9051, Access Protocol (IMAP) - Version 4rev2", RFC 9051,
DOI 10.17487/RFC9051, August 2021, DOI 10.17487/RFC9051, August 2021,
<https://www.rfc-editor.org/info/rfc9051>. <https://www.rfc-editor.org/info/rfc9051>.
Appendix A. Design Rationale Appendix A. Design Rationale
skipping to change at line 509 skipping to change at line 511
all). all).
For these reasons, it was judged best to revise [RFC6855] and adopt For these reasons, it was judged best to revise [RFC6855] and adopt
the same syntax as IMAP4rev2. the same syntax as IMAP4rev2.
B.2. FETCH BODYSTRUCTURE B.2. FETCH BODYSTRUCTURE
[RFC6532] defines a new media type, message/global, which is [RFC6532] defines a new media type, message/global, which is
substantially like message/rfc822 except that the submessage may substantially like message/rfc822 except that the submessage may
(also) use the syntax defined in [RFC6532]. [RFC3501] and [RFC9051] (also) use the syntax defined in [RFC6532]. [RFC3501] and [RFC9051]
define a FETCH item to return the media type of the body of a define a FETCH item to return the MIME structure of a message, which
message, which servers usually compute once and store. servers usually compute once and store.
None of the RFCs point out to implementers that IMAP4rev1 and None of the RFCs point out to implementers that IMAP4rev1 and
IMAP4rev2 are slightly different, so storing the BODYSTRUCTURE in the IMAP4rev2 are slightly different, so storing the BODYSTRUCTURE in the
way servers and clients often do can easily lead to problems. way servers and clients often do can easily lead to problems.
This document makes the syntax optional, making it simple for server This document makes the syntax optional, making it simple for server
authors to implement this extension correctly. This implies that authors to implement this extension correctly. This implies that
clients need to parse and handle both varieties, which they need to clients need to parse and handle both varieties, which they need to
do anyway if they want to support both IMAP4rev1 and IMAP4rev2. do anyway if they want to support both IMAP4rev1 and IMAP4rev2.
 End of changes. 8 change blocks. 
13 lines changed or deleted 15 lines changed or added

This html diff was produced by rfcdiff 1.48.