<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-gondwana-degennaro-imap-objectid-bis-00" category="std" consensus="true" submissionType="IETF" obsoletes="RFC8474" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="IMAP OBJECTIDBIS">IMAP Extension for Object Identifiers</title>

    <author initials="B." surname="Gondwana" fullname="Bron Gondwana">
      <organization abbrev="Fastmail">Fastmail</organization>
      <address>
        <postal>
          <street>Level 2, 114 William St</street>
          <city>Melbourne</city>
          <region>VIC 3000</region>
          <country>Australia</country>
        </postal>
        <email>brong@fastmailteam.com</email>
        <uri>https://www.fastmail.com</uri>
      </address>
    </author>
    <author initials="M." surname="De Gennaro" fullname="Mauro De Gennaro">
      <organization abbrev="Stalwart Labs">Stalwart Labs LLC</organization>
      <address>
        <postal>
          <street>1309 Coffeen Avenue, Suite 1200</street>
          <city>Sheridan</city>
          <region>WY</region>
          <code>82801</code>
          <country>USA</country>
        </postal>
        <email>mauro@stalw.art</email>
        <uri>https://stalw.art</uri>
      </address>
    </author>

    <date year="2026" month="February" day="10"/>

    
    <workgroup>mailmaint</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 59?>

<t>This document updates <xref target="RFC3501"/> (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>

<t>This document obsoletes <xref target="RFC8474"/> by making all object identifier
types optional, introducing the OBJECTIDBIS capability with mandatory
ENABLE negotiation, and extending the framework to include account-level
context through the ACCOUNTID identifier. The ENABLE requirement ensures
that servers can implement the extension without altering the IMAP
grammar for clients that do not understand the extension. The account
identifier extension enables IMAP servers to provide account-level
context for mailboxes when multiple accounts are accessible through a
single IMAP connection, facilitating interoperability with the JSON Meta
Application Protocol (JMAP) in multi-account scenarios.</t>



    </abstract>



  </front>

  <middle>


<?line 77?>

<section anchor="introduction"><name>Introduction</name>

<t>IMAP stores are often used by many clients.  Each client may cache
data from the server so that it does not need to redownload
information.  <xref target="RFC3501"/> states that a mailbox can be uniquely
referenced by its name and UIDVALIDITY, and a message within that
mailbox can be uniquely referenced by its mailbox (name +
UIDVALIDITY) and unique identifier (UID).  The triple of mailbox
name, UIDVALIDITY, and UID is guaranteed to be immutable.</t>

<t><xref target="RFC4315"/> defines a COPYUID response that allows a client that copies
messages to know the mapping between the UIDs in the source and
destination mailboxes and, hence, update its local cache.</t>

<t>If a mailbox is successfully renamed by a client, that client will
know that the same messages exist in the destination mailbox name as
previously existed in the source mailbox name.</t>

<t>The result is that the client that copies (or moves <xref target="RFC6851"/>)
messages or renames a mailbox can update its local cache, but any
other client connected to the same store cannot know with certainty
that the messages are identical, so it will redownload everything.</t>

<t>This extension adds new properties to a message (EMAILID) and mailbox
(MAILBOXID).  These properties allow a client to quickly identify
messages or mailboxes that have been renamed by another client.</t>

<t>This extension also adds an optional thread identifier (THREADID) to
messages, which can be used by the server to indicate messages that
it has identified to be related.</t>

<t>Additionally, this document introduces the ACCOUNTID object identifier,
which specifies the account to which a mailbox or message belongs. This
is particularly relevant for environments where IMAP mailboxes include
shared mailboxes from multiple JMAP accounts, as defined in <xref target="RFC8620"/>.</t>

<t>All object identifier types defined in this specification are optional.
A server that supports this extension <bcp14>MAY</bcp14> return NIL for any object
identifier type that it does not implement. This design permits partial
implementation, allowing servers to provide identifiers for the types
they support without requiring full implementation of all identifier
types.</t>

<t>This extension requires the use of the ENABLE command, as defined in
<xref target="RFC5161"/>, to activate the extended response syntax. The ENABLE
requirement ensures that servers can implement the extension without
introducing incompatible changes to the IMAP grammar for clients that
do not understand the extension. Until the client issues
ENABLE OBJECTIDBIS, the server <bcp14>MUST NOT</bcp14> return any of the extended
response formats defined in this document.</t>

<section anchor="notational-conventions"><name>Notational Conventions</name>

<t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
</section>
<section anchor="capability-identification"><name>CAPABILITY Identification</name>

<t>IMAP servers that support this extension <bcp14>MUST</bcp14> include "OBJECTIDBIS" in
the response list to the CAPABILITY command.</t>

<t>A server <bcp14>MAY</bcp14> advertise both the "OBJECTID" capability defined in
<xref target="RFC8474"/> and the "OBJECTIDBIS" capability defined in this document.
When both capabilities are advertised, the server <bcp14>MUST</bcp14> conform to the
behaviour specified in <xref target="RFC8474"/> unless and until the client issues
ENABLE OBJECTIDBIS, at which point the server <bcp14>MUST</bcp14> conform to the
behaviour specified in this document.</t>

<t>If the client has not issued ENABLE OBJECTIDBIS, the server <bcp14>MUST NOT</bcp14>
return any of the extended response formats defined in this document,
including OBJECTID response codes, OBJECTID status attributes, OBJECTID
fetch data items, or ACCOUNTID attributes. This restriction ensures
that the IMAP grammar remains unaltered for clients that do not
understand the extension.</t>

<section anchor="enable-requirement"><name>ENABLE Requirement</name>

<t>The OBJECTIDBIS extension <bcp14>MUST</bcp14> be activated by the client through the
ENABLE command as defined in <xref target="RFC5161"/>. A client that wishes to use
the facilities defined in this document <bcp14>MUST</bcp14> issue ENABLE OBJECTIDBIS
before relying on any of the extended responses.</t>

<t>Example:</t>

<figure><artwork><![CDATA[
C: 7 enable objectidbis
S: * ENABLED OBJECTIDBIS
S: 7 OK Completed
]]></artwork></figure>

<t>After the server confirms that OBJECTIDBIS has been enabled, the
extended response formats defined in this document become active for
the remainder of the IMAP session.</t>

</section>
</section>
<section anchor="objectid-compound"><name>OBJECTID Compound Identifier</name>

<t>The OBJECTID is a compound data item that aggregates all object
identifiers relevant to a given context into a single response element.
The composition of the OBJECTID depends on whether it pertains to a
mailbox or a message.</t>

<section anchor="mailbox-context"><name>Mailbox Context</name>

<t>When used in the context of a mailbox (response codes for CREATE,
SELECT, and EXAMINE; STATUS attributes), the OBJECTID compound
contains the following elements:</t>

<t>Syntax: "OBJECTID" SP "(" "MAILBOXID" SP objectid-or-nil SP \
        "ACCOUNTID" SP objectid-or-nil ")"</t>

<t>The MAILBOXID element contains the mailbox identifier, and the
ACCOUNTID element contains the account identifier. Either element
<bcp14>MAY</bcp14> be NIL if the server does not support the corresponding
identifier type.</t>

</section>
<section anchor="message-context"><name>Message Context</name>

<t>When used in the context of a message (FETCH data items), the OBJECTID
compound contains the following elements:</t>

<t>Syntax: "OBJECTID" SP "(" "EMAILID" SP objectid-or-nil SP \
        "ACCOUNTID" SP objectid-or-nil SP \
        "THREADID" SP objectid-or-nil ")"</t>

<t>The EMAILID element contains the email identifier, the ACCOUNTID
element contains the account identifier, and the THREADID element
contains the thread identifier. Any element <bcp14>MAY</bcp14> be NIL if the server
does not support the corresponding identifier type.</t>

</section>
<section anchor="relationship-to-individual-attributes"><name>Relationship to Individual Attributes</name>

<t>The OBJECTID compound is functionally equivalent to requesting each
of its constituent identifiers individually. A server <bcp14>MUST</bcp14> return the
same values for identifiers whether they are requested individually
or as part of an OBJECTID compound. For example, the MAILBOXID
returned within an OBJECTID STATUS response <bcp14>MUST</bcp14> be identical to the
MAILBOXID returned when requested as a standalone STATUS attribute.</t>

<t>The OBJECTID compound is provided as a convenience for clients that
wish to retrieve all available identifiers in a single request without
enumerating each attribute separately.</t>

</section>
</section>
<section anchor="accountid"><name>ACCOUNTID Object Identifier</name>

<t>The ACCOUNTID is a server-allocated identifier that specifies the
account to which a mailbox or message belongs. When used in conjunction
with MAILBOXID, the ACCOUNTID provides complete disambiguation of
mailboxes in environments where multiple accounts are accessible through
a single IMAP session.</t>

<t>The ACCOUNTID is represented as an opaque string using the same
character set and syntactic constraints as other object identifiers
defined in this specification (see <xref target="objectid-syntax"/>).</t>

<t>The server <bcp14>MUST</bcp14> return the same ACCOUNTID for all mailboxes and messages
that belong to the same account. Conversely, the server <bcp14>MUST NOT</bcp14> return
the same ACCOUNTID for mailboxes or messages that belong to different
accounts, even if accessed within the same IMAP session.</t>

<t>When a server advertises the "JMAPACCESS" capability as defined in
<xref target="RFC9698"/>, it <bcp14>MUST</bcp14> ensure that the ACCOUNTID returned via IMAP matches
the accountId property of the corresponding account in JMAP, as defined
in <xref section="1.6.2" sectionFormat="of" target="RFC8620"/>. This correspondence is essential for
clients to correlate mailboxes and messages across the two protocols.</t>

<t>When a mailbox or message is accessed exclusively through IMAP and does
not have a corresponding representation in JMAP, the server <bcp14>MAY</bcp14> still
assign an ACCOUNTID to maintain consistency in the IMAP representation.
However, such ACCOUNTIDs need not correspond to any JMAP account
identifier.</t>

<t>The ACCOUNTID is conceptually immutable for a given account within an
IMAP session. However, if the underlying account is deleted or the
user's access to that account is revoked, the associated mailboxes will
no longer be accessible via IMAP, and their ACCOUNTIDs become
irrelevant.</t>

<t>The server <bcp14>MAY</bcp14> return NIL for ACCOUNTID if it does not support account
identifiers.</t>

</section>
<section anchor="mailboxid"><name>MAILBOXID Object Identifier</name>

<t>The MAILBOXID is a server-allocated unique identifier for each
mailbox.</t>

<t>The server <bcp14>MUST</bcp14> return the same MAILBOXID for a mailbox with the same
name and UIDVALIDITY.</t>

<t>The server <bcp14>MUST NOT</bcp14> report the same MAILBOXID for two mailboxes at
the same time.</t>

<t>The server <bcp14>MUST NOT</bcp14> reuse the same MAILBOXID for a mailbox that does
not obey all the invariants that <xref target="RFC3501"/> defines for a mailbox that
does not change name or UIDVALIDITY.</t>

<t>The server <bcp14>MUST</bcp14> keep the same MAILBOXID for the source and
destination when renaming a mailbox in a way that keeps the same
messages (but see <xref target="RFC3501"/> for the special case regarding the
renaming of INBOX, which is treated as creating a new mailbox and
moving the messages).</t>

<t>The server <bcp14>MAY</bcp14> return NIL for MAILBOXID if it does not support mailbox
identifiers for a given mailbox (for example, for virtual folders).</t>

<section anchor="new-response-code-for-create"><name>New Response Code for CREATE</name>

<t>This document extends the CREATE command to include object identifiers
in the response code on successful mailbox creation.</t>

<t>When OBJECTIDBIS has been enabled, the server <bcp14>MUST</bcp14> include the OBJECTID
response code in the tagged OK response to all successful CREATE
commands.</t>

<t>Example:</t>

<figure><artwork><![CDATA[
C: 8 create bar
S: 8 OK [OBJECTID (MAILBOXID \
        (F6352ae03-b7f5-463c-896f-d8b48ee3) \
        ACCOUNTID (u1a48e8e3))] Completed
]]></artwork></figure>

<t>Example (MAILBOXID not supported):</t>

<figure><artwork><![CDATA[
C: 9 create virtual-folder
S: 9 OK [OBJECTID (MAILBOXID NIL \
        ACCOUNTID (u1a48e8e3))] Completed
]]></artwork></figure>

</section>
<section anchor="new-response-code-for-rename"><name>New Response Code for RENAME</name>

<t>This document extends the RENAME command to include the OBJECTID
response code in the tagged OK response on successful mailbox rename
when OBJECTIDBIS has been enabled.</t>

<t>The OBJECTID response code in the RENAME response conveys the object
identifiers of the mailbox after the rename operation has been
completed. The MAILBOXID and ACCOUNTID returned <bcp14>MAY</bcp14> differ from those
of the source mailbox, depending on server implementation and whether
the rename operation crosses account boundaries.</t>

<t>When a mailbox is renamed within the same account, the server <bcp14>SHOULD</bcp14>
return the same MAILBOXID and ACCOUNTID as the source mailbox, unless
the server does not support persistent mailbox identifiers across
rename operations.</t>

<t>When a mailbox is renamed across account boundaries (for example,
from a personal namespace to a shared namespace belonging to a
different account), the server <bcp14>MAY</bcp14> return a different ACCOUNTID,
a different MAILBOXID, or both, reflecting the new account context
and any server-specific identifier allocation policy.</t>

<t>Example (local rename, identifiers preserved):</t>

<figure><artwork><![CDATA[
C: 12 rename foo renamed-foo
S: 12 OK [OBJECTID (MAILBOXID \
        (F2212ea87-6097-4256-9d51-71338625) \
        ACCOUNTID (u1a48e8e3))] Completed
]]></artwork></figure>

<t>Example (cross-account rename, new identifiers issued):</t>

<figure><artwork><![CDATA[
C: 13 rename bar "Other Users.shared.bar"
S: 13 OK [OBJECTID (MAILBOXID \
        (Fa77c2e19-84d3-4b0f-9e12-67df5c8a) \
        ACCOUNTID (u2b59f9f4))] Completed
]]></artwork></figure>

<t>In the first example, the mailbox "foo" is renamed to "renamed-foo"
within the same account, and the server preserves both the MAILBOXID
and the ACCOUNTID. In the second example, the mailbox "bar" is renamed
into a shared namespace belonging to a different account, and the
server issues both a new MAILBOXID and a new ACCOUNTID reflecting the
destination account.</t>

</section>
<section anchor="new-ok-untagged-response-for-select-and-examine"><name>New OK Untagged Response for SELECT and EXAMINE</name>

<t>This document adds a new untagged response code to the SELECT and
EXAMINE commands.</t>

<t>When OBJECTIDBIS has been enabled, the server <bcp14>MUST</bcp14> return an untagged
OK response with the OBJECTID response code on all successful SELECT
and EXAMINE commands.</t>

<t>Example:</t>

<figure><artwork><![CDATA[
C: 9 select "bar"
[...]
S: * OK [OBJECTID (MAILBOXID \
        (F6352ae03-b7f5-463c-896f-d8b48ee3) \
        ACCOUNTID (u1a48e8e3))] Ok
[...]
S: 9 OK [READ-WRITE] Completed
]]></artwork></figure>

</section>
<section anchor="new-attributes-for-status"><name>New Attributes for STATUS</name>

<t>This document adds the MAILBOXID, ACCOUNTID, and OBJECTID attributes
to the STATUS command using the extended syntax defined in <xref target="RFC4466"/>.</t>

<t>A server that has OBJECTIDBIS enabled <bcp14>MUST</bcp14> support the MAILBOXID,
ACCOUNTID, and OBJECTID status attributes.</t>

<t>The MAILBOXID status attribute returns the mailbox identifier for the
specified mailbox. The ACCOUNTID status attribute returns the account
identifier for the specified mailbox. The OBJECTID status attribute
returns both the mailbox identifier and the account identifier as a
compound value.</t>

<t>The server <bcp14>MAY</bcp14> return NIL for any identifier that it does not support.</t>

<t>Example:</t>

<figure><artwork><![CDATA[
C: 6 status foo (mailboxid)
S: * STATUS foo (MAILBOXID \
        (F2212ea87-6097-4256-9d51-71338625))
S: 6 OK Completed
C: 7 status bar (mailboxid accountid)
S: * STATUS bar (MAILBOXID \
        (F6352ae03-b7f5-463c-896f-d8b48ee3) \
        ACCOUNTID (u1a48e8e3))
S: 7 OK Completed
C: 8 rename foo renamed
S: * OK rename foo renamed
S: 8 OK Completed
C: 9 status renamed (objectid)
S: * STATUS renamed (OBJECTID (MAILBOXID \
        (F2212ea87-6097-4256-9d51-71338625) \
        ACCOUNTID (u1a48e8e3)))
S: 9 OK Completed
]]></artwork></figure>

<t>When the LIST-STATUS IMAP capability defined in <xref target="RFC5819"/> is also
available, the STATUS command can be combined with the LIST command.</t>

<t>Example:</t>

<figure><artwork><![CDATA[
C: 11 list "" "*" return (status (objectid))
S: * LIST (\HasNoChildren) "." INBOX
S: * STATUS INBOX (OBJECTID (MAILBOXID \
        (Ff8e3ead4-9389-4aff-adb1-d8d89efd8cbf) \
        ACCOUNTID (u1a48e8e3)))
S: * LIST (\HasNoChildren) "." bar
S: * STATUS bar (OBJECTID (MAILBOXID \
        (F6352ae03-b7f5-463c-896f-d8b48ee3) \
        ACCOUNTID (u1a48e8e3)))
S: * LIST (\HasNoChildren) "." renamed
S: * STATUS renamed (OBJECTID (MAILBOXID \
        (F2212ea87-6097-4256-9d51-71338625) \
        ACCOUNTID (u1a48e8e3)))
S: * LIST (\HasNoChildren) "." "Other Users.other.sub.folder"
S: * STATUS "Other Users.other.sub.folder" (OBJECTID (\
        MAILBOXID (F8839dca12-3ef8-4a72-b63d-54f9e8a1) \
        ACCOUNTID (u2b59f9f4)))
S: 11 OK Completed (0.001 secs 4 calls)
]]></artwork></figure>

<t>This example demonstrates how clients can efficiently retrieve object
identifiers for multiple mailboxes, including mailboxes belonging to
different accounts, using the extended LIST command with STATUS return
option.</t>

</section>
</section>
<section anchor="emailid"><name>EMAILID Object Identifier and THREADID Correlator</name>

<section anchor="emailid-identifier-for-identical-messages"><name>EMAILID Identifier for Identical Messages</name>

<t>The EMAILID data item is an ObjectID that uniquely identifies the
content of a single message.  Anything that must remain immutable on
a {name, uidvalidity, uid} triple must also be the same between
messages with the same EMAILID.</t>

<t>The server <bcp14>MUST</bcp14> return the same EMAILID for the same triple; hence,
EMAILID is immutable.</t>

<t>The server <bcp14>MUST</bcp14> return the same EMAILID as the source message for the
matching destination message in the COPYUID pairing after a COPY or
MOVE command <xref target="RFC6851"/>.</t>

<t>The server <bcp14>MAY</bcp14> assign the same EMAILID as an existing message upon
APPEND (e.g., if it detects that the new message has exactly
identical content to that of an existing message).</t>

<t>NOTE: EMAILID only identifies the immutable content of the message.
In particular, it is possible for different messages with the same
EMAILID to have different keywords.  This document does not specify a
way to STORE by EMAILID.</t>

<t>The server <bcp14>MAY</bcp14> return NIL for EMAILID if it does not support email
identifiers (for example, for virtual messages).</t>

</section>
<section anchor="threadid"><name>THREADID Identifier for Related Messages</name>

<t>The THREADID data item is an ObjectID that uniquely identifies a set
of messages that the server believes should be grouped together when
presented.</t>

<t>THREADID calculation is generally based on some combination of
References, In-Reply-To, and Subject, but the exact logic is left up
to the server implementation.  <xref target="RFC5256"/> describes some algorithms
that could be used; however, this specification does not mandate any
particular strategy.</t>

<t>The server <bcp14>MUST</bcp14> return the same THREADID for all messages with the
same EMAILID.</t>

<t>The server <bcp14>SHOULD</bcp14> return the same THREADID for related messages, even
if they are in different mailboxes; for example, messages that would
appear in the same thread if they were in the same mailbox <bcp14>SHOULD</bcp14>
have the same THREADID, even if they are in different mailboxes.</t>

<t>The server <bcp14>MUST NOT</bcp14> change the THREADID of a message once reported.</t>

<t>THREADID is <bcp14>OPTIONAL</bcp14>; if the server does not support THREADID or is
unable to calculate relationships between messages, it <bcp14>MUST</bcp14> return
NIL to all FETCH responses for the THREADID data item, and a SEARCH
for THREADID <bcp14>MUST NOT</bcp14> match any messages.</t>

<t>The server <bcp14>MUST NOT</bcp14> use the same ObjectID value for both EMAILIDs and
THREADIDs.  If they are stored with the same value internally, the
server can generate prefixed values (as shown in the examples below
with M and T prefixes) to avoid clashes.</t>

</section>
<section anchor="new-message-data-items-in-fetch-and-uid-fetch-commands"><name>New Message Data Items in FETCH and UID FETCH Commands</name>

<t>This document defines the following FETCH request items:</t>

<t>Syntax: "EMAILID"</t>

<t>The EMAILID message data item causes the server to return EMAILID
FETCH response data items.</t>

<t>Syntax: "THREADID"</t>

<t>The THREADID message data item causes the server to return THREADID
FETCH response data items.</t>

<t>Syntax: "ACCOUNTID"</t>

<t>The ACCOUNTID message data item causes the server to return ACCOUNTID
FETCH response data items.</t>

<t>Syntax: "OBJECTID"</t>

<t>The OBJECTID message data item causes the server to return OBJECTID
FETCH response data items containing all email-related object
identifiers as a compound value.</t>

<t>This document defines the following FETCH response items:</t>

<t>Syntax: "EMAILID" SP objectid-or-nil</t>

<t>The EMAILID response data item contains the server-assigned ObjectID
for each message, or NIL if the server does not support email
identifiers.</t>

<t>Syntax: "THREADID" SP objectid-or-nil</t>

<t>The THREADID response data item contains the server-assigned ObjectID
for the set of related messages to which this message belongs.  NIL
is returned when the server does not support THREADID calculation.</t>

<t>Syntax: "ACCOUNTID" SP objectid-or-nil</t>

<t>The ACCOUNTID response data item contains the account identifier for
the message, or NIL if the server does not support account
identifiers.</t>

<t>Syntax: "OBJECTID" SP "(" "EMAILID" SP objectid-or-nil SP \
        "ACCOUNTID" SP objectid-or-nil SP \
        "THREADID" SP objectid-or-nil ")"</t>

<t>The OBJECTID response data item contains all email-related object
identifiers as a compound value.</t>

<t>Example (EMAILID and THREADID):</t>

<figure><artwork><![CDATA[
C: 22 fetch 1:* (emailid threadid)
S: * 1 FETCH (EMAILID (M6d99ac3275bb4e) \
        THREADID (T64b478a75b7ea9))
S: * 2 FETCH (EMAILID (M288836c4c7a762) \
        THREADID (T64b478a75b7ea9))
S: * 3 FETCH (EMAILID (M5fdc09b49ea703) \
        THREADID (T11863d02dd95b5))
S: 22 OK Completed (0.000 sec)

C: 23 move 2 foo
S: * OK [COPYUID 1521475659 2 1] Completed
S: * 2 EXPUNGE
S: 23 OK Completed

C: 24 fetch 1:* (emailid threadid)
S: * 1 FETCH (EMAILID (M6d99ac3275bb4e) \
        THREADID (T64b478a75b7ea9))
S: * 2 FETCH (EMAILID (M5fdc09b49ea703) \
        THREADID (T11863d02dd95b5))
S: 24 OK Completed (0.000 sec)

C: 25 select "foo"
[...]
S: 25 OK [READ-WRITE] Completed
C: 26 fetch 1:* (emailid threadid)
S: * 1 FETCH (EMAILID (M288836c4c7a762) \
        THREADID (T64b478a75b7ea9))
S: 26 OK Completed (0.000 sec)
]]></artwork></figure>

<t>Example (OBJECTID compound value):</t>

<figure><artwork><![CDATA[
C: 30 fetch 1:* (objectid)
S: * 1 FETCH (OBJECTID (EMAILID (M6d99ac3275bb4e) \
        ACCOUNTID (u1a48e8e3) \
        THREADID (T64b478a75b7ea9)))
S: * 2 FETCH (OBJECTID (EMAILID (M5fdc09b49ea703) \
        ACCOUNTID (u1a48e8e3) \
        THREADID (T11863d02dd95b5)))
S: 30 OK Completed (0.000 sec)
]]></artwork></figure>

<t>Example (no THREADID support):</t>

<figure><artwork><![CDATA[
C: 26 fetch 1:* (emailid threadid)
S: * 1 FETCH (EMAILID (M00000001) THREADID NIL)
S: * 2 FETCH (EMAILID (M00000002) THREADID NIL)
S: 26 OK Completed (0.000 sec)
]]></artwork></figure>

<t>Example (OBJECTID with no THREADID support):</t>

<figure><artwork><![CDATA[
C: 31 fetch 1:* (objectid)
S: * 1 FETCH (OBJECTID (EMAILID (M00000001) \
        ACCOUNTID (u1a48e8e3) THREADID NIL))
S: * 2 FETCH (OBJECTID (EMAILID (M00000002) \
        ACCOUNTID (u1a48e8e3) THREADID NIL))
S: 31 OK Completed (0.000 sec)
]]></artwork></figure>

<t>Example (no EMAILID support):</t>

<figure><artwork><![CDATA[
C: 32 fetch 1:* (objectid)
S: * 1 FETCH (OBJECTID (EMAILID NIL \
        ACCOUNTID (u1a48e8e3) THREADID NIL))
S: 32 OK Completed (0.000 sec)
]]></artwork></figure>

</section>
</section>
<section anchor="new-filters-on-search-command"><name>New Filters on SEARCH Command</name>

<t>This document defines the filters EMAILID, THREADID, and ACCOUNTID on
the SEARCH command.</t>

<t>The EMAILID and THREADID filters require ENABLE OBJECTIDBIS to be in
effect. However, if the server also advertises the OBJECTID capability
defined in <xref target="RFC8474"/>, it <bcp14>MAY</bcp14> support the EMAILID and THREADID filters
without requiring ENABLE OBJECTIDBIS, using the syntax defined in
<xref target="RFC8474"/>.</t>

<t>The ACCOUNTID filter is only available when OBJECTIDBIS has been
enabled.</t>

<t>Syntax: "EMAILID" SP objectid-atom</t>

<t>Messages whose EMAILID is exactly the specified ObjectID.</t>

<t>Syntax: "THREADID" SP objectid-atom</t>

<t>Messages whose THREADID is exactly the specified ObjectID.</t>

<t>Syntax: "ACCOUNTID" SP objectid-atom</t>

<t>Messages whose ACCOUNTID is exactly the specified ObjectID.</t>

<t>Example: (as if run before the MOVE shown above when the mailbox had
three messages)</t>

<figure><artwork><![CDATA[
C: 27 search emailid M6d99ac3275bb4e
S: * SEARCH 1
S: 27 OK Completed (1 msgs in 0.000 secs)
C: 28 search threadid T64b478a75b7ea9
S: * SEARCH 1 2
S: 28 OK Completed (2 msgs in 0.000 secs)
C: 29 search accountid u1a48e8e3
S: * SEARCH 1 2 3
S: 29 OK Completed (3 msgs in 0.000 secs)
]]></artwork></figure>

</section>
<section anchor="objectid-syntax"><name>Formal Syntax</name>

<t>The following syntax specification uses the Augmented Backus-Naur
Form (ABNF) <xref target="RFC5234"/> notation.  Elements not defined here can be
found in the formal syntax of the ABNF <xref target="RFC5234"/>, IMAP <xref target="RFC3501"/>,
IMAP ABNF extensions <xref target="RFC4466"/>, and IMAP ENABLE <xref target="RFC5161"/>
specifications.</t>

<t>Except as noted otherwise, all alphabetic characters are case
insensitive.  The use of uppercase or lowercase characters to define
token strings is for editorial clarity only.  Implementations <bcp14>MUST</bcp14>
accept these strings in a case-insensitive fashion.</t>

<t>Please note specifically that ObjectID values are case sensitive.</t>

<figure><artwork><![CDATA[
capability =/ "OBJECTIDBIS"

enable-data =/ "OBJECTIDBIS"
        ; extends the enable-data production from [RFC5161]

objectid-atom = 1*255(ALPHA / DIGIT / "_" / "-")
        ; the raw object identifier string
        ; characters are case significant

objectid = "(" objectid-atom ")"
        ; parenthesized object identifier

objectid-or-nil = objectid / nil
        ; parenthesized object identifier or NIL

; --- FETCH request items ---

fetch-att =/ "EMAILID" / "THREADID" / "ACCOUNTID" / "OBJECTID"

; --- FETCH response items ---

fetch-emailid-resp = "EMAILID" SP objectid-or-nil

fetch-threadid-resp = "THREADID" SP objectid-or-nil

fetch-accountid-resp = "ACCOUNTID" SP objectid-or-nil

fetch-objectid-email-resp = "OBJECTID" SP "(" \
        "EMAILID" SP objectid-or-nil SP \
        "ACCOUNTID" SP objectid-or-nil SP \
        "THREADID" SP objectid-or-nil ")"
        ; compound email object identifier response

msg-att-static =/ fetch-emailid-resp / fetch-threadid-resp /
        fetch-accountid-resp / fetch-objectid-email-resp

; --- Response codes ---

resp-text-code =/ "OBJECTID" SP "(" \
        "MAILBOXID" SP objectid-or-nil SP \
        "ACCOUNTID" SP objectid-or-nil ")"
        ; compound mailbox object identifier response code;
        ; returned in tagged OK for CREATE and RENAME,
        ; and in untagged OK for SELECT and EXAMINE

; --- SEARCH filters ---

search-key =/ "EMAILID" SP objectid-atom /
        "THREADID" SP objectid-atom /
        "ACCOUNTID" SP objectid-atom

; --- STATUS attributes ---

status-att =/ "MAILBOXID" / "ACCOUNTID" / "OBJECTID"

status-att-val =/ "MAILBOXID" SP objectid-or-nil

status-att-val =/ "ACCOUNTID" SP objectid-or-nil

status-att-val =/ "OBJECTID" SP "(" \
        "MAILBOXID" SP objectid-or-nil SP \
        "ACCOUNTID" SP objectid-or-nil ")"
        ; compound mailbox object identifier status value
]]></artwork></figure>

</section>
<section anchor="implementation-considerations"><name>Implementation Considerations</name>

<section anchor="assigning-object-identifiers"><name>Assigning Object Identifiers</name>

<t>All ObjectID values are allocated by the server.</t>

<t>In the interest of reducing the possibilities of encoding mistakes,
ObjectIDs are restricted to a safe subset of possible byte values; in
order to allow clients to allocate storage, they are restricted in
length.</t>

<t>An ObjectID is a string of 1 to 255 characters from the following set
of 64 codepoints: a-z, A-Z, 0-9, _, -.  These characters are safe to
use in almost any context (e.g., filesystems, URIs, IMAP atoms).
These are the same characters defined as base64url in <xref target="RFC4648"/>.</t>

<t>For maximum safety, servers should also follow defensive allocation
strategies to avoid creating risks where glob completion or data type
detection may be present (e.g., on filesystems or in spreadsheets).
In particular, it is wise to avoid:</t>

<t><list style="symbols">
  <t>IDs starting with a dash</t>
  <t>IDs starting with digits</t>
  <t>IDs that contain only digits</t>
  <t>IDs that differ only by ASCII case (for example, A vs. a)</t>
  <t>the specific sequence of three characters NIL in any case (because
this sequence can be confused with the IMAP protocol expression of
the null value)</t>
</list></t>

<t>A good solution to these issues is to prefix every ID with a single
alphabetical character.</t>

</section>
<section anchor="interaction-with-special-cases"><name>Interaction with Special Cases</name>

<t>The case of RENAME INBOX may need special handling because it has
special behavior, as defined in <xref section="6.3.5" sectionFormat="of" target="RFC3501"/>.</t>

<t>It is advisable (though not required) to have MAILBOXID be globally
unique, but it is only required to be unique within messages offered
to a single client login to a single server hostname.  For example, a
proxy that aggregates multiple independent servers <bcp14>MUST NOT</bcp14> advertise
the OBJECTIDBIS capability unless it can guarantee that different
objects will never use the same identifiers, even if backend object
identifiers collide.</t>

<t>The ACCOUNTID provides additional disambiguation in multi-account
environments, ensuring that even if two backend servers use the same
MAILBOXID, the combination of ACCOUNTID and MAILBOXID remains unique
within the IMAP session.</t>

</section>
<section anchor="client-usage"><name>Client Usage</name>

<t>Servers that implement both <xref target="RFC6154"/> and this specification should
optimize their execution of commands like UID SEARCH OR EMAILID 1234
EMAILID 4321.</t>

<t>Clients can assume that searching the all-mail mailbox using OR/
EMAILID or OR/THREADID is a fast way to find messages again if some
other client has moved them out of the mailbox where they were
previously seen.</t>

<t>Clients that cache data offline should fetch the EMAILID of all new
messages to avoid redownloading already-cached message details.</t>

<t>Clients should fetch the MAILBOXID for any new mailboxes before
discarding cache data for any mailbox that is no longer present on
the server so that they can detect renames and avoid redownloading
data.</t>

<t>Clients that support both IMAP and JMAP <bcp14>SHOULD</bcp14> use the ACCOUNTID when
available to maintain accurate mappings between IMAP mailboxes and
JMAP Mailbox objects. This is particularly important for clients that
use JMAP Email Delivery Push notifications, as these notifications
include the accountId property. By correlating the accountId from a
push notification with the ACCOUNTID, clients can efficiently
determine which IMAP mailbox corresponds to a newly delivered message
without requiring additional synchronization operations.</t>

<t>Clients <bcp14>SHOULD</bcp14> be prepared to handle servers that return NIL for any
of the object identifier types. In such cases, clients should
gracefully degrade functionality to use only the supported object
identifier types and fall back to the guarantees of <xref target="RFC3501"/>.</t>

</section>
<section anchor="interaction-with-the-objectid-capability"><name>Interaction with the OBJECTID Capability</name>

<t>A server that advertises both the OBJECTID capability defined in
<xref target="RFC8474"/> and the OBJECTIDBIS capability defined in this document
<bcp14>MUST</bcp14> behave as follows:</t>

<t><list style="symbols">
  <t>When OBJECTIDBIS has not been enabled, the server <bcp14>MUST</bcp14> conform to
the behaviour specified in <xref target="RFC8474"/> for all OBJECTID-related
responses. The server <bcp14>MUST NOT</bcp14> return OBJECTID response codes,
OBJECTID status attributes, ACCOUNTID attributes, or NIL values
for MAILBOXID or EMAILID.</t>
  <t>When OBJECTIDBIS has been enabled, the server <bcp14>MUST</bcp14> conform to
the behaviour specified in this document. The server <bcp14>MUST</bcp14> use
OBJECTID response codes in place of MAILBOXID response codes for
CREATE, SELECT, and EXAMINE commands. The server <bcp14>MUST</bcp14> support
ACCOUNTID, MAILBOXID, and OBJECTID as STATUS attributes and FETCH
data items.</t>
</list></t>

<t>This design allows servers to support both the original and extended
specifications without breaking the IMAP grammar for clients that
understand only one of the two extensions.</t>

</section>
<section anchor="advice-to-client-implementers"><name>Advice to Client Implementers</name>

<t>In cases of server failure and disaster recovery, or misbehaving
servers, it is possible that a client will be sent invalid
information, e.g., identical ObjectIDs or ObjectIDs that have changed
where they <bcp14>MUST NOT</bcp14> change according to this document.</t>

<t>In a case where a client detects inconsistent ObjectID responses from
a server, it <bcp14>SHOULD</bcp14> fall back to relying on the guarantees of
<xref target="RFC3501"/>.  For simplicity, a client <bcp14>MAY</bcp14> instead choose to discard its
entire cache and resync all state from the server.</t>

<t>Client authors protecting against server misbehavior <bcp14>MUST</bcp14> ensure that
their design cannot get into an infinite loop of discarding cache and
fetching the same data repeatedly without user interaction.</t>

</section>
</section>
<section anchor="future-considerations"><name>Future Considerations</name>

<t>This extension is intentionally defined to be compatible with the
data model in JMAP for Mail.</t>

<t>A future extension could be proposed to give a way to SELECT a
mailbox by MAILBOXID rather than name.</t>

<t>A future extension to <xref target="RFC5228"/> could allow fileinto by MAILBOXID
rather than name.</t>

<t>An extension to allow fetching message content directly via EMAILID
and message listings by THREADID could be proposed.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<section anchor="imap-capabilities-registry"><name>IMAP Capabilities Registry</name>

<t>IANA is requested to add the following entry to the "IMAP Capabilities"
registry located at <eref target="https://www.iana.org/assignments/imap-capabilities">https://www.iana.org/assignments/imap-capabilities</eref>:</t>

<texttable>
      <ttcol align='left'>Capability</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>OBJECTIDBIS</c>
      <c>This document</c>
</texttable>

<t>The existing "OBJECTID" entry in the "IMAP Capabilities" registry,
registered by <xref target="RFC8474"/>, remains unchanged. Servers <bcp14>MAY</bcp14> advertise
both OBJECTID and OBJECTIDBIS as described in this document.</t>

</section>
<section anchor="imap-response-codes-registry"><name>IMAP Response Codes Registry</name>

<t>IANA is requested to add the following entry to the "IMAP Response
Codes" registry located at
<eref target="https://www.iana.org/assignments/imap-response-codes">https://www.iana.org/assignments/imap-response-codes</eref>:</t>

<texttable>
      <ttcol align='left'>Response Code</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>OBJECTID</c>
      <c>This document</c>
</texttable>

<t>The existing "MAILBOXID" entry in the "IMAP Response Codes" registry,
registered by <xref target="RFC8474"/>, remains unchanged.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<section anchor="object-identifier-generation"><name>Object Identifier Generation</name>

<t>It is strongly advised that servers generate ObjectIDs that are safe
to use as filesystem names and unlikely to be autodetected as
numbers.  See implementation considerations.</t>

<t>If a digest is used for ID generation, it must have a collision-
resistant property, so server implementations are advised to monitor
current security research and choose secure digests.  As the IDs are
generated by the server, it will be possible to migrate to a new hash
by just using the new algorithm when creating new IDs.  This is
particularly true if a prefix is used on each ID, which can be
changed when the algorithm changes.</t>

<t>The use of a digest for ID generation may be used as proof that a
particular sequence of bytes was seen by the server.  However, this
is only a risk if IDs are leaked to clients who don't have permission
to fetch the data directly.  Servers that are expected to handle
highly sensitive data should consider this when choosing how to
create IDs.</t>

<t>See also the security considerations in <xref section="11" sectionFormat="of" target="RFC3501"/>.</t>

</section>
<section anchor="account-identifier-exposure"><name>Account Identifier Exposure</name>

<t>The account identifier component of MAILBOXID reveals information about
the account structure of the server and which mailboxes belong to which
accounts. While this information is generally not considered sensitive
in the context of an authenticated IMAP session, servers that wish to
minimize information disclosure <bcp14>MAY</bcp14> choose to generate account identifiers
using unpredictable values (such as UUIDs) rather than sequential numbers
or other patterns that might reveal information about account creation
order or the total number of accounts on the server.</t>

</section>
<section anchor="cross-account-information-leakage"><name>Cross-Account Information Leakage</name>

<t>Servers <bcp14>MUST</bcp14> ensure that the MAILBOXID mechanism does not inadvertently
grant users access to information about accounts they are not authorized
to access. In particular, servers <bcp14>MUST NOT</bcp14> return account identifiers
for accounts that the authenticated user does not have permission to
access, even if such accounts exist on the server.</t>

</section>
<section anchor="consistency-with-jmap-authentication"><name>Consistency with JMAP Authentication</name>

<t>When a server advertises both "OBJECTID" (or "OBJECTID=MAILBOXID") and
"JMAPACCESS" capabilities, the server <bcp14>MUST</bcp14> ensure that the same
authentication credentials used for the IMAP session would grant access
to the corresponding JMAP accounts. Inconsistencies in authentication
or authorization between IMAP and JMAP could lead to situations where
a client receives account identifiers that it cannot subsequently use
to access the corresponding JMAP resources, potentially revealing the
existence of accounts the user cannot access.</t>

</section>
<section anchor="privacy-in-multi-tenant-environments"><name>Privacy in Multi-Tenant Environments</name>

<t>In multi-tenant or hosted environments, servers <bcp14>SHOULD</bcp14> generate account
identifiers in a manner that does not reveal relationships between
accounts or organizational structures that users should not be aware of.
For example, if multiple accounts belong to the same organization, the
account identifier generation mechanism should not use patterns that
would allow users to infer these relationships unless such information
is explicitly intended to be visible.</t>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="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>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="RFC4315">
  <front>
    <title>Internet Message Access Protocol (IMAP) - UIDPLUS extension</title>
    <author fullname="M. Crispin" initials="M." surname="Crispin"/>
    <date month="December" year="2005"/>
    <abstract>
      <t>The UIDPLUS extension of the Internet Message Access Protocol (IMAP) provides a set of features intended to reduce the amount of time and resources used by some client operations. The features in UIDPLUS are primarily intended for disconnected-use clients. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4315"/>
  <seriesInfo name="DOI" value="10.17487/RFC4315"/>
</reference>

<reference anchor="RFC4466">
  <front>
    <title>Collected Extensions to IMAP4 ABNF</title>
    <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
    <author fullname="C. Daboo" initials="C." surname="Daboo"/>
    <date month="April" year="2006"/>
    <abstract>
      <t>Over the years, many documents from IMAPEXT and LEMONADE working groups, as well as many individual documents, have added syntactic extensions to many base IMAP commands described in RFC 3501. For ease of reference, this document collects most of such ABNF changes in one place.</t>
      <t>This document also suggests a set of standard patterns for adding options and extensions to several existing IMAP commands defined in RFC 3501. The patterns provide for compatibility between existing and future extensions.</t>
      <t>This document updates ABNF in RFCs 2088, 2342, 3501, 3502, and 3516. It also includes part of the errata to RFC 3501. This document doesn't specify any semantic changes to the listed RFCs. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4466"/>
  <seriesInfo name="DOI" value="10.17487/RFC4466"/>
</reference>

<reference anchor="RFC5228">
  <front>
    <title>Sieve: An Email Filtering Language</title>
    <author fullname="P. Guenther" initials="P." role="editor" surname="Guenther"/>
    <author fullname="T. Showalter" initials="T." role="editor" surname="Showalter"/>
    <date month="January" year="2008"/>
    <abstract>
      <t>This document describes a language for filtering email messages at time of final delivery. It is designed to be implementable on either a mail client or mail server. It is meant to be extensible, simple, and independent of access protocol, mail architecture, and operating system. It is suitable for running on a mail server where users may not be allowed to execute arbitrary programs, such as on black box Internet Message Access Protocol (IMAP) servers, as the base language has no variables, loops, or ability to shell out to external programs. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5228"/>
  <seriesInfo name="DOI" value="10.17487/RFC5228"/>
</reference>

<reference anchor="RFC5234">
  <front>
    <title>Augmented BNF for Syntax Specifications: ABNF</title>
    <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
    <author fullname="P. Overell" initials="P." surname="Overell"/>
    <date month="January" year="2008"/>
    <abstract>
      <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="68"/>
  <seriesInfo name="RFC" value="5234"/>
  <seriesInfo name="DOI" value="10.17487/RFC5234"/>
</reference>

<reference anchor="RFC5256">
  <front>
    <title>Internet Message Access Protocol - SORT and THREAD Extensions</title>
    <author fullname="M. Crispin" initials="M." surname="Crispin"/>
    <author fullname="K. Murchison" initials="K." surname="Murchison"/>
    <date month="June" year="2008"/>
    <abstract>
      <t>This document describes the base-level server-based sorting and threading extensions to the IMAP protocol. These extensions provide substantial performance improvements for IMAP clients that offer sorted and threaded views. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5256"/>
  <seriesInfo name="DOI" value="10.17487/RFC5256"/>
</reference>

<reference anchor="RFC5819">
  <front>
    <title>IMAP4 Extension for Returning STATUS Information in Extended LIST</title>
    <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
    <author fullname="T. Sirainen" initials="T." surname="Sirainen"/>
    <date month="March" year="2010"/>
    <abstract>
      <t>Many IMAP clients display information about total number of messages / total number of unseen messages in IMAP mailboxes. In order to do that, they are forced to issue a LIST or LSUB command and to list all available mailboxes, followed by a STATUS command for each mailbox found. This document provides an extension to LIST command that allows the client to request STATUS information for mailboxes together with other information typically returned by the LIST command. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5819"/>
  <seriesInfo name="DOI" value="10.17487/RFC5819"/>
</reference>

<reference anchor="RFC6851">
  <front>
    <title>Internet Message Access Protocol (IMAP) - MOVE Extension</title>
    <author fullname="A. Gulbrandsen" initials="A." surname="Gulbrandsen"/>
    <author fullname="N. Freed" initials="N." role="editor" surname="Freed"/>
    <date month="January" year="2013"/>
    <abstract>
      <t>This document defines an IMAP extension consisting of two new commands, MOVE and UID MOVE, that are used to move messages from one mailbox to another. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6851"/>
  <seriesInfo name="DOI" value="10.17487/RFC6851"/>
</reference>

<reference anchor="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>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="RFC9698">
  <front>
    <title>The JMAPACCESS Extension for IMAP</title>
    <author fullname="A. Gulbrandsen" initials="A." surname="Gulbrandsen"/>
    <author fullname="B. Gondwana" initials="B." surname="Gondwana"/>
    <date month="January" year="2025"/>
    <abstract>
      <t>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>
  </front>
  <seriesInfo name="RFC" value="9698"/>
  <seriesInfo name="DOI" value="10.17487/RFC9698"/>
</reference>

<reference anchor="RFC5161">
  <front>
    <title>The IMAP ENABLE Extension</title>
    <author fullname="A. Gulbrandsen" initials="A." role="editor" surname="Gulbrandsen"/>
    <author fullname="A. Melnikov" initials="A." role="editor" surname="Melnikov"/>
    <date month="March" year="2008"/>
    <abstract>
      <t>Most IMAP extensions are used by the client when it wants to and the server supports it. However, a few extensions require the server to know whether a client supports that extension. The ENABLE extension allows an IMAP client to say which extensions it supports. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5161"/>
  <seriesInfo name="DOI" value="10.17487/RFC5161"/>
</reference>

<reference anchor="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>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="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>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>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC6154">
  <front>
    <title>IMAP LIST Extension for Special-Use Mailboxes</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="J. Nicolson" initials="J." surname="Nicolson"/>
    <date month="March" year="2011"/>
    <abstract>
      <t>Some IMAP message stores include special-use mailboxes, such as those used to hold draft messages or sent messages. Many mail clients allow users to specify where draft or sent messages should be put, but configuring them requires that the user know which mailboxes the server has set aside for these purposes. This extension adds new optional mailbox attributes that a server may include in IMAP LIST command responses to identify special-use mailboxes to the client, easing configuration. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6154"/>
  <seriesInfo name="DOI" value="10.17487/RFC6154"/>
</reference>

<reference anchor="RFC4122">
  <front>
    <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
    <author fullname="P. Leach" initials="P." surname="Leach"/>
    <author fullname="M. Mealling" initials="M." surname="Mealling"/>
    <author fullname="R. Salz" initials="R." surname="Salz"/>
    <date month="July" year="2005"/>
    <abstract>
      <t>This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier). A UUID is 128 bits long, and can guarantee uniqueness across space and time. UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation\'s (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.</t>
      <t>This specification is derived from the DCE specification with the kind permission of the OSF (now known as The Open Group). Information from earlier versions of the DCE specification have been incorporated into this document. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4122"/>
  <seriesInfo name="DOI" value="10.17487/RFC4122"/>
</reference>

<reference anchor="RFC4648">
  <front>
    <title>The Base16, Base32, and Base64 Data Encodings</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="October" year="2006"/>
    <abstract>
      <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4648"/>
  <seriesInfo name="DOI" value="10.17487/RFC4648"/>
</reference>

<reference anchor="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>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>


<?line 1006?>

<section anchor="ideas-for-implementing-object-identifiers"><name>Ideas for Implementing Object Identifiers</name>

<t>Ideas for calculating account identifiers:</t>

<t><list style="symbols">
  <t>Universally Unique Identifier (UUID) <xref target="RFC4122"/></t>
  <t>Server-assigned sequence number (guaranteed not to be reused)</t>
  <t>Hash of the JMAP accountId (if JMAP integration is provided)</t>
</list></t>

<t>Ideas for calculating mailbox identifiers:</t>

<t><list style="symbols">
  <t>Universally Unique Identifier (UUID) <xref target="RFC4122"/></t>
  <t>Server-assigned sequence number (guaranteed not to be reused)</t>
</list></t>

<t>Ideas for implementing EMAILID:</t>

<t><list style="symbols">
  <t>Digest of message content (RFC822 bytes) -- expensive unless
cached</t>
  <t>UUID <xref target="RFC4122"/></t>
  <t>Server-assigned sequence number (guaranteed not to be reused)</t>
</list></t>

<t>Ideas for implementing THREADID:</t>

<t><list style="symbols">
  <t>Derive from EMAILID of first seen message in the thread.</t>
  <t>UUID <xref target="RFC4122"/></t>
  <t>Server-assigned sequence number (guaranteed not to be reused)</t>
</list></t>

<t>There is a need to index and look up reference/in-reply-to data at
message creation to efficiently find matching messages for threading.
Threading may be either across mailboxes or within each mailbox only.
The server has significant leeway here.</t>

</section>
<section anchor="changes-from-rfc-8474"><name>Changes from RFC 8474</name>

<t>This document obsoletes <xref target="RFC8474"/> and introduces the following changes:</t>

<t><list style="symbols">
  <t>Replaced the OBJECTID capability with the OBJECTIDBIS capability,
which requires activation through the ENABLE command.</t>
  <t>Introduced the OBJECTID compound response format, which combines
multiple object identifiers into a single response element. For
mailboxes, the OBJECTID response includes MAILBOXID and ACCOUNTID.
For emails, the OBJECTID response includes EMAILID, ACCOUNTID, and
THREADID.</t>
  <t>Added the ACCOUNTID object identifier, which specifies the account
to which a mailbox or message belongs, enabling correlation with
JMAP account identifiers.</t>
  <t>Added ACCOUNTID as a standalone STATUS attribute, FETCH data item,
and SEARCH filter.</t>
  <t>Added the OBJECTID response code to the RENAME command, enabling
clients to track mailbox identifier changes across rename operations,
including renames that cross account boundaries.</t>
  <t>Added OBJECTID as a compound STATUS attribute and FETCH data item
that returns all relevant identifiers for the context.</t>
  <t>Added the ENABLE requirement to ensure backward compatibility with
clients that do not understand the extended response syntax.</t>
  <t>Defined coexistence rules for servers that advertise both the
OBJECTID capability from <xref target="RFC8474"/> and the OBJECTIDBIS capability
from this document.</t>
  <t>Revised the formal syntax to introduce the objectid-atom,
objectid, and objectid-or-nil productions, providing consistent
parenthesization and NIL handling across all response types.</t>
  <t>Corrected the THREADID response syntax from <xref target="RFC8474"/>, which
inconsistently applied parenthesization between the objectid and
NIL alternatives.</t>
  <t>Updated IANA registrations to include the OBJECTIDBIS capability
and OBJECTID response code.</t>
  <t>Added security considerations for account identifier exposure,
cross-account information leakage, JMAP authentication consistency,
and privacy in multi-tenant environments.</t>
</list></t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The authors would like to thank the members of the IETF mailmaint
working group for their contributions to this specification.</t>

</section>
<section anchor="changes"><name>Changes</name>

<t>[[This section to be removed by RFC Editor]]</t>

<t><strong>draft-gondwana-degennaro-imap-objectid-bis-00</strong></t>

<t><list style="symbols">
  <t>Initial version</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
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
0BgaRbxST7A9WZ1AGtf3xewGxG32FysdwyYRQhN2z9k0XCVWaZLKN07+EuF0
T3BKC48NN5zQ+XfqhYZ2Ru1xYUXiAswTw1cspQb+wJ4srqUpajxu4M0qnbhB
mshsuNKEGWGOQgA1iBwkd6qSPKog3L3BUIpScWc+Fdc6ZRwk79zB2Z4M3mO9
/Tdo+03NuJXtaspt72rrQ9RkgveeiUdz6uFz8b7XvrVTn9D1X2rQZTYpn1I6
6IGu+8qGW6WT7a74MMBDffH7Ot+76jV2b2GEuIWVP6Ux2oilvw+G4vsIOstn
d2LDyvH9VZ6wexLaLe2W3zCEbfqte5p++w4Enekt+ygdyqfAmopP6dc90Sh8
gsLRMEZUVxveF2SveAtuA4pUDgmMCtw7FFH+gkggnTh75C4FmoKq/hjeyrj5
1pvgogISGti618ooNCt9Sos5/xR8D+5pYy0+FxCi8A5ILxJcOITF4xwENLbw
pA6UYOzWDcUxZyUqIKLDZVYzcYD6tSjoHGuy9wgGt8eh/CW9j53wwNwO7yIE
Q5lPdLkjWj4C5O5Wdl5yeG2oCoyt9okHVGe2zVypO/doSG7LmmsOVjlPhhcT
FdKeyMV+gjMIoCKV9ESk9Vs9Ewnn4DKFjpxWoZxmZ6tG4zub0dFDBxEWQYBd
3+BRktlNWXJYwppf2PRaIdYqe9UqbRyACZqRm3ngxY7t+yKddtR8TzO1dG5s
axQyfmvx4fx2l1Wnx6tiU9+yhb3+bmHk8gH0j0DG473DeVmukMo6ViMaTWR7
hu2CmfVAW1P7v/zecQp26uTYIqszOq36at0gQO3gZuvKLLTA6ISe9BMX/cMe
dHANlTtsRFAsQSrl0l+V5S7e7oy6cs4T+zncsSm0s8qaB19Q3EscDYnVu7sT
pvehLEwabjEOuLMXIPZMA8PYJPfkCDTVzMbbMNKGsS5Cfjis6hu2iAe0r8tO
iL8gpxpTIDAq4MBepnLkImiGS60A2Di+D2q/2/ig/bo4fXvaF4omyXcW3uVz
aRYwbAWGCb2T1UED84buDGxFWQ3eUC1W0VZnwC1V2RG1xK9BoPwqvL47S4pk
VFaLZ1xDT478M7qPPbxl6DdgjfwUWE5a/6TdET4K2f+kfhqG/+K/4G94P1TR
P7UOcP7E0Qh3KjXIOvAirW/fs0gtixzY5ZJBDfsSlVf5cIGVpSMtcYDoYidF
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
0utdBZoAAA==

-->

</rfc>

