<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-ietf-extra-jmapaccess-09" number="9698" tocInclude="true" updates="" obsoletes="" category="std" consensus="true" submissionType="IETF" sortRefs="true" xml:lang="en" prepTime="2025-01-22T11:51:05" indexInclude="true" scripts="Common,Latin" symRefs="true" tocDepth="3">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-extra-jmapaccess-09" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9698" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="IMAP JMAPACCESS">The JMAPACCESS Extension for IMAP</title>
    <seriesInfo name="RFC" value="9698" stream="IETF"/>
    <author initials="A." surname="Gulbrandsen" fullname="Arnt Gulbrandsen">
      <organization showOnFrontPage="true">ICANN</organization>
      <address>
        <postal>
          <street>6 Rond Point Schumann, Bd. 1</street>
          <city>Brussels</city>
          <code>1040</code>
          <country>Belgium</country>
        </postal>
        <email>arnt@gulbrandsen.priv.no</email>
        <uri>https://icann.org/ua</uri>
      </address>
    </author>
    <author initials="B." surname="Gondwana" fullname="Bron Gondwana">
      <organization showOnFrontPage="true">Fastmail</organization>
      <address>
        <postal>
          <street>Level 2, 114 William St.</street>
          <city>Melbourne VIC</city>
          <code>3000</code>
          <country>Australia</country>
        </postal>
        <email>brong@fastmailteam.com</email>
        <uri>https://fastmail.com</uri>
      </address>
    </author>
    <date month="01" year="2025"/>
    <area>ART</area>
    <workgroup>extra</workgroup>
    <keyword>IMAP</keyword>
    <keyword>JMAP</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document defines an IMAP extension to let clients know that the
messages in this IMAP server are also available via the JSON Meta Application Protocol (JMAP), and how. It is
intended for clients that want to migrate gradually to JMAP or use
JMAP extensions within an IMAP client.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            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.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9698" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2025 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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 Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-details">Details</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-the-getjmapaccess-command-a">The GETJMAPACCESS Command and the JMAPACCESS Response</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-examples">Examples</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">An IMAP server can declare that the messages in its mailstore are also
available via JMAP. For simplicity, only a complete equivalence is
supported (the same set of messages are available via both IMAP and
JMAP).</t>
    </section>
    <section anchor="requirements-language" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-requirements-language">Requirements Language</name>
      <t indent="0" pn="section-2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>",
    "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be
    interpreted as described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
      </t>
    </section>
    <section anchor="details" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-details">Details</name>
      <t indent="0" pn="section-3-1">By advertising the JMAPACCESS capability, the server asserts that if a
mailbox or message has a particular object ID when accessed via either
IMAP or JMAP (see <xref target="RFC3501" format="default" sectionFormat="of" derivedContent="RFC3501"/>, <xref target="RFC9051" format="default" sectionFormat="of" derivedContent="RFC9051"/>, and <xref target="RFC8620" format="default" sectionFormat="of" derivedContent="RFC8620"/>), then the
same mailbox or message is accessible via the other protocol, and it
has the same ID.</t>
      <t indent="0" pn="section-3-2">The server <bcp14>MUST</bcp14> also advertise the OBJECTID extension, defined by
<xref target="RFC8474" format="default" sectionFormat="of" derivedContent="RFC8474"/>. The JMAP session resource that allows access to the same
messages is called "the JMAP server" below.</t>
      <t indent="0" pn="section-3-3">This specification does not affect message lifetime: If a client
accesses a message via IMAP and half a second later via JMAP, then the
message may have been deleted between the two accesses.</t>
      <t indent="0" pn="section-3-4">When the server processes the client's LOGIN/AUTHENTICATE command and
enters Authenticated state, the server considers the way the client
authenticated. If the IMAP server can infer from the client's
authentication process that its credentials suffice to authenticate
via JMAP, then the server <bcp14>MUST</bcp14> include a JMAPACCESS capability in any
capability list sent after that point.  This includes the capability
list that some servers send immediately when authentication succeeds.</t>
      <t indent="0" pn="section-3-5">Servers are encouraged to report the same message flags and other data
via both protocols, as far as possible.</t>
      <t indent="0" pn="section-3-6">This specification does not require mailboxes to have the same name in
IMAP and JMAP, even if they share a mailbox ID. However, the JMAP
specification regulates that in the text about the name and role
properties described in <xref target="RFC8620" sectionFormat="of" section="2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8620#section-2" derivedContent="RFC8620"/>.</t>
      <t indent="0" pn="section-3-7">Note that all JMAP servers support internationalized email addresses
(see <xref target="RFC6530" format="default" sectionFormat="of" derivedContent="RFC6530"/>).  If this IMAP server does not or if the IMAP client
does not issue ENABLE UTF8=ACCEPT (see <xref target="RFC6855" format="default" sectionFormat="of" derivedContent="RFC6855"/>), then it is possible
that the client will receive accurate address fields via JMAP
and downgraded fields via IMAP (see <xref target="RFC6857" format="default" sectionFormat="of" derivedContent="RFC6857"/> and <xref target="RFC6858" format="default" sectionFormat="of" derivedContent="RFC6858"/>
for examples). Issuing ENABLE UTF8=ACCEPT is a simple way to sidestep
the issue.</t>
    </section>
    <section anchor="the-jmapaccess-response-code" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-the-getjmapaccess-command-a">The GETJMAPACCESS Command and the JMAPACCESS Response</name>
      <t indent="0" pn="section-4-1">
   The GETJMAPACCESS command requests that the server respond with the
   session URL for the JMAP server that provides access to the same
   mail.</t>
      <t indent="0" pn="section-4-2">   If such a JMAP server is known to this server, the server <bcp14>MUST</bcp14>
   respond with an untagged JMAPACCESS response containing the JMAP
   server's session resource (a URL) followed by a tagged OK response.</t>
      <t indent="0" pn="section-4-3">   If such a JMAP server is not known, the server <bcp14>MUST</bcp14> respond with a
   tagged BAD response (and <bcp14>MUST NOT</bcp14> include JMAPACCESS in the
   capability list).</t>
      <t indent="0" pn="section-4-4">   The JMAPACCESS response is followed by a single link to a JMAP
   session resource.</t>
      <t indent="0" pn="section-4-5">The formal syntax in <xref target="RFC9051" format="default" sectionFormat="of" derivedContent="RFC9051"/> is extended as follows:</t>
      <sourcecode type="abnf" markers="false" pn="section-4-6">
command-auth =/ "GETJMAPACCESS"

mailbox-data =/ resp-jmapaccess

resp-jmapaccess = "JMAPACCESS" SP quoted
</sourcecode>
      <t indent="0" pn="section-4-7">The syntax in <xref target="RFC3501" format="default" sectionFormat="of" derivedContent="RFC3501"/> is extended similarly (this extension may be
used with IMAP4rev1 as well as IMAP4rev2).</t>
    </section>
    <section anchor="Examples" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-examples">Examples</name>
      <t indent="0" pn="section-5-1">Lines sent by the client are preceded by C: and lines sent by the server are preceded by S:. Each example starts with the IMAP banner issued by the server
on connection, and generally abbreviates the capability lists to
what's required by the example itself.</t>
      <t indent="0" pn="section-5-2">Real connections use longer capability lists, much longer AUTHENTICATE
arguments and of course use TLS. However, these examples focus on JMAPACCESS.</t>
      <t indent="0" pn="section-5-3">Example 1:</t>
      <t indent="0" pn="section-5-4">A client connects, sees that SASL OAuth <xref target="RFC7628" format="default" sectionFormat="of" derivedContent="RFC7628"/> is available, and
authenticates in that way.</t>
      <sourcecode type="" markers="false" pn="section-5-5">
S: * OK [CAPABILITY IMAP4rev1 AUTH=OAUTHBEARER SASL-IR] example1
C: 1 AUTHENTICATE OAUTHBEARER bixhPXVzZ...QEB
</sourcecode>
      <t indent="0" pn="section-5-6">The server processes the command successfully. It knows that the
client used OAuth, and that it and its JMAP alter ego use the same
OAuth backend subsystem. Because of that it infers that the (next)
access token is just as usable via JMAP as via IMAP. It includes a
JMAPACCESS capability in its reply (again, real capability lists are much longer):
</t>
      <sourcecode type="" markers="false" pn="section-5-7">
S: 1 OK [CAPABILITY IMAP4rev1 JMAPACCESS] done
C: 1b GETJMAPACCESS
S: * JMAPACCESS "https://example.com/.well-known/jmap"
S: 1b OK done
</sourcecode>
      <t indent="0" pn="section-5-8">SASL OAuth is specified by <xref target="RFC7628" format="default" sectionFormat="of" derivedContent="RFC7628"/>, and the argument in this
example is abbreviated from the more realistic length used in RFC 7628.</t>
      <t indent="0" pn="section-5-9">Example 2:</t>
      <t indent="0" pn="section-5-10">A client connects, sees no SASL method it recognizes, and
issues a LOGIN command.</t>
      <sourcecode type="" markers="false" pn="section-5-11">
S: * OK [CAPABILITY IMAP4rev2] example2
C: 2 LOGIN "arnt" "trondheim"
</sourcecode>
      <t indent="0" pn="section-5-12">The server sees that the password is accepted, knows that it and its
JMAP alter ego use the same password database, and issues a JMAPACCESS
capability:</t>
      <sourcecode type="" markers="false" pn="section-5-13">
   S: * OK [CAPABILITY IMAP4rev2 JMAPACCESS] done
   S: 2 OK done
   C: 2b JMAPACCESS
   S: * JMAPACCESS "https://example.com/.well-known/jmap"
   S: 2b OK done
</sourcecode>
      <t indent="0" pn="section-5-14">The URL uses the same quoting rules as most other IMAP strings.</t>
      <t indent="0" pn="section-5-15">Example 3:</t>
      <t indent="0" pn="section-5-16">A client connects, sees no SASL method it recognizes, and
issues a LOGIN command with a correct password.</t>
      <sourcecode type="" markers="false" pn="section-5-17">
S: * OK [CAPABILITY IMAP4rev1 IMAP4rev2] example3
C: 3 LOGIN "arnt" "trondheim"
</sourcecode>
      <t indent="0" pn="section-5-18">The server operator has decided to disable password use with JMAP, but
allow it for a while with IMAP to cater to older clients.  Therefore, the login
succeeds, but there is no JMAPACCESS capability.</t>
      <sourcecode type="" markers="false" pn="section-5-19">
S: 3 OK done
</sourcecode>
      <t indent="0" pn="section-5-20">Example 4:</t>
      <t indent="0" pn="section-5-21">A client connects, sees no SASL method it recognizes, and
issues a LOGIN command. Its password is incorrect.</t>
      <sourcecode type="" markers="false" pn="section-5-22">
S: * OK [CAPABILITY IMAP4rev2 AUTH=GSS] example4
C: 4 LOGIN "arnt" "oslo"
</sourcecode>
      <t indent="0" pn="section-5-23">The server does not enter Authenticated state, so nothing requires it
to mention JMAPACCESS. It replies curtly:</t>
      <sourcecode type="" markers="false" pn="section-5-24">
S: 4 NO done
</sourcecode>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">The IANA has added the JMAPACCESS capability to the "Internet Message Access Protocol (IMAP) Capabilities Registry" and listed this document as the reference.</t>
    </section>
    <section anchor="Security" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-7-1">JMAPACCESS reveals to authenticated IMAP clients that
they would be able to authenticate via JMAP using the same credentials
and that the object IDs match.</t>
      <t indent="0" pn="section-7-2">One does not normally reveal anything at all about authentication.
However, if the client is an attacker, then the attacker is known to
have valid credentials, and <xref target="RFC8620" sectionFormat="of" section="2.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8620#section-2.2" derivedContent="RFC8620"/> tells the attacker
how to find the revealed URL without the help of this extension.
Therefore, it is believed that this document does not
benefit an attacker noticeably, and its value for migration far outweighs
its risk.</t>
    </section>
  </middle>
  <back>
    <references pn="section-8">
      <name slugifiedName="name-references">References</name>
      <references anchor="sec-normative-references" pn="section-8.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3501" target="https://www.rfc-editor.org/info/rfc3501" quoteTitle="true" derivedAnchor="RFC3501">
          <front>
            <title>INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1</title>
            <author fullname="M. Crispin" initials="M." surname="Crispin"/>
            <date month="March" year="2003"/>
            <abstract>
              <t indent="0">The Internet Message Access Protocol, Version 4rev1 (IMAP4rev1) allows a client to access and manipulate electronic mail messages on a server. IMAP4rev1 permits manipulation of mailboxes (remote message folders) in a way that is functionally equivalent to local folders. IMAP4rev1 also provides the capability for an offline client to resynchronize with the server. IMAP4rev1 includes operations for creating, deleting, and renaming mailboxes, checking for new messages, permanently removing messages, setting and clearing flags, RFC 2822 and RFC 2045 parsing, searching, and selective fetching of message attributes, texts, and portions thereof. Messages in IMAP4rev1 are accessed by the use of numbers. These numbers are either message sequence numbers or unique identifiers. IMAP4rev1 supports a single server. A mechanism for accessing configuration information to support multiple IMAP4rev1 servers is discussed in RFC 2244. IMAP4rev1 does not specify a means of posting mail; this function is handled by a mail transfer protocol such as RFC 2821. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3501"/>
          <seriesInfo name="DOI" value="10.17487/RFC3501"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8474" target="https://www.rfc-editor.org/info/rfc8474" quoteTitle="true" derivedAnchor="RFC8474">
          <front>
            <title>IMAP Extension for Object Identifiers</title>
            <author fullname="B. Gondwana" initials="B." role="editor" surname="Gondwana"/>
            <date month="September" year="2018"/>
            <abstract>
              <t indent="0">This document updates RFC 3501 (IMAP4rev1) with persistent identifiers on mailboxes and messages to allow clients to more efficiently reuse cached data when resources have changed location on the server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8474"/>
          <seriesInfo name="DOI" value="10.17487/RFC8474"/>
        </reference>
        <reference anchor="RFC9051" target="https://www.rfc-editor.org/info/rfc9051" quoteTitle="true" derivedAnchor="RFC9051">
          <front>
            <title>Internet Message Access Protocol (IMAP) - Version 4rev2</title>
            <author fullname="A. Melnikov" initials="A." role="editor" surname="Melnikov"/>
            <author fullname="B. Leiba" initials="B." role="editor" surname="Leiba"/>
            <date month="August" year="2021"/>
            <abstract>
              <t indent="0">The Internet Message Access Protocol Version 4rev2 (IMAP4rev2) allows a client to access and manipulate electronic mail messages on a server. IMAP4rev2 permits manipulation of mailboxes (remote message folders) in a way that is functionally equivalent to local folders. IMAP4rev2 also provides the capability for an offline client to resynchronize with the server.</t>
              <t indent="0">IMAP4rev2 includes operations for creating, deleting, and renaming mailboxes; checking for new messages; removing messages permanently; setting and clearing flags; parsing per RFCs 5322, 2045, and 2231; searching; and selective fetching of message attributes, texts, and portions thereof. Messages in IMAP4rev2 are accessed by the use of numbers. These numbers are either message sequence numbers or unique identifiers.</t>
              <t indent="0">IMAP4rev2 does not specify a means of posting mail; this function is handled by a mail submission protocol such as the one specified in RFC 6409.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9051"/>
          <seriesInfo name="DOI" value="10.17487/RFC9051"/>
        </reference>
      </references>
      <references anchor="sec-informative-references" pn="section-8.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC6530" target="https://www.rfc-editor.org/info/rfc6530" quoteTitle="true" derivedAnchor="RFC6530">
          <front>
            <title>Overview and Framework for Internationalized Email</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="Y. Ko" initials="Y." surname="Ko"/>
            <date month="February" year="2012"/>
            <abstract>
              <t indent="0">Full use of electronic mail throughout the world requires that (subject to other constraints) people be able to use close variations on their own names (written correctly in their own languages and scripts) as mailbox names in email addresses. This document introduces a series of specifications that define mechanisms and protocol extensions needed to fully support internationalized email addresses. These changes include an SMTP extension and extension of email header syntax to accommodate UTF-8 data. The document set also includes discussion of key assumptions and issues in deploying fully internationalized email. This document is a replacement for RFC 4952; it reflects additional issues identified since that document was published. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6530"/>
          <seriesInfo name="DOI" value="10.17487/RFC6530"/>
        </reference>
        <reference anchor="RFC6855" target="https://www.rfc-editor.org/info/rfc6855" quoteTitle="true" derivedAnchor="RFC6855">
          <front>
            <title>IMAP Support for UTF-8</title>
            <author fullname="P. Resnick" initials="P." role="editor" surname="Resnick"/>
            <author fullname="C. Newman" initials="C." role="editor" surname="Newman"/>
            <author fullname="S. Shen" initials="S." role="editor" surname="Shen"/>
            <date month="March" year="2013"/>
            <abstract>
              <t indent="0">This specification extends the Internet Message Access Protocol (IMAP) to support UTF-8 encoded international characters in user names, mail addresses, and message headers. This specification replaces RFC 5738.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6855"/>
          <seriesInfo name="DOI" value="10.17487/RFC6855"/>
        </reference>
        <reference anchor="RFC6857" target="https://www.rfc-editor.org/info/rfc6857" quoteTitle="true" derivedAnchor="RFC6857">
          <front>
            <title>Post-Delivery Message Downgrading for Internationalized Email Messages</title>
            <author fullname="K. Fujiwara" initials="K." surname="Fujiwara"/>
            <date month="March" year="2013"/>
            <abstract>
              <t indent="0">The Email Address Internationalization (SMTPUTF8) extension to SMTP allows Unicode characters encoded in UTF-8 and outside the ASCII repertoire in mail header fields. Upgraded POP and IMAP servers support internationalized messages. If a POP or IMAP client does not support Email Address Internationalization, a POP or IMAP server cannot deliver internationalized messages to the client and cannot remove the message. To avoid that situation, this document describes a mechanism for converting internationalized messages into the traditional message format. As part of the conversion process, message elements that require internationalized treatment are recoded or removed, and receivers are able to recognize that they received messages containing such elements, even if they cannot process the internationalized elements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6857"/>
          <seriesInfo name="DOI" value="10.17487/RFC6857"/>
        </reference>
        <reference anchor="RFC6858" target="https://www.rfc-editor.org/info/rfc6858" quoteTitle="true" derivedAnchor="RFC6858">
          <front>
            <title>Simplified POP and IMAP Downgrading for Internationalized Email</title>
            <author fullname="A. Gulbrandsen" initials="A." surname="Gulbrandsen"/>
            <date month="March" year="2013"/>
            <abstract>
              <t indent="0">This document specifies a method for IMAP and POP servers to serve internationalized messages to conventional clients. The specification is simple, easy to implement, and provides only rudimentary results.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6858"/>
          <seriesInfo name="DOI" value="10.17487/RFC6858"/>
        </reference>
        <reference anchor="RFC7628" target="https://www.rfc-editor.org/info/rfc7628" quoteTitle="true" derivedAnchor="RFC7628">
          <front>
            <title>A Set of Simple Authentication and Security Layer (SASL) Mechanisms for OAuth</title>
            <author fullname="W. Mills" initials="W." surname="Mills"/>
            <author fullname="T. Showalter" initials="T." surname="Showalter"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2015"/>
            <abstract>
              <t indent="0">OAuth enables a third-party application to obtain limited access to a protected resource, either on behalf of a resource owner by orchestrating an approval interaction or by allowing the third-party application to obtain access on its own behalf.</t>
              <t indent="0">This document defines how an application client uses credentials obtained via OAuth over the Simple Authentication and Security Layer (SASL) to access a protected resource at a resource server. Thereby, it enables schemes defined within the OAuth framework for non-HTTP-based application protocols.</t>
              <t indent="0">Clients typically store the user's long-term credential. This does, however, lead to significant security vulnerabilities, for example, when such a credential leaks. A significant benefit of OAuth for usage in those clients is that the password is replaced by a shared secret with higher entropy, i.e., the token. Tokens typically provide limited access rights and can be managed and revoked separately from the user's long-term password.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7628"/>
          <seriesInfo name="DOI" value="10.17487/RFC7628"/>
        </reference>
        <reference anchor="RFC8620" target="https://www.rfc-editor.org/info/rfc8620" quoteTitle="true" derivedAnchor="RFC8620">
          <front>
            <title>The JSON Meta Application Protocol (JMAP)</title>
            <author fullname="N. Jenkins" initials="N." surname="Jenkins"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2019"/>
            <abstract>
              <t indent="0">This document specifies a protocol for clients to efficiently query, fetch, and modify JSON-based data objects, with support for push notification of changes and fast resynchronisation and for out-of- band binary data upload/download.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8620"/>
          <seriesInfo name="DOI" value="10.17487/RFC8620"/>
        </reference>
      </references>
    </references>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="A." surname="Gulbrandsen" fullname="Arnt Gulbrandsen">
        <organization showOnFrontPage="true">ICANN</organization>
        <address>
          <postal>
            <street>6 Rond Point Schumann, Bd. 1</street>
            <city>Brussels</city>
            <code>1040</code>
            <country>Belgium</country>
          </postal>
          <email>arnt@gulbrandsen.priv.no</email>
          <uri>https://icann.org/ua</uri>
        </address>
      </author>
      <author initials="B." surname="Gondwana" fullname="Bron Gondwana">
        <organization showOnFrontPage="true">Fastmail</organization>
        <address>
          <postal>
            <street>Level 2, 114 William St.</street>
            <city>Melbourne VIC</city>
            <code>3000</code>
            <country>Australia</country>
          </postal>
          <email>brong@fastmailteam.com</email>
          <uri>https://fastmail.com</uri>
        </address>
      </author>
    </section>
  </back>
</rfc>
