<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mailmaint-autoconfig-04" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="autoconfig">Mail Autoconfig</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mailmaint-autoconfig-04"/>
    <author fullname="Ben Bucksch">
      <organization>Beonex</organization>
      <address>
        <email>ben.bucksch@beonex.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="04"/>
    <area>art</area>
    <workgroup>mailmaint</workgroup>
    <keyword>config</keyword>
    <keyword>configuration</keyword>
    <keyword>autoconfig</keyword>
    <keyword>autodiscover</keyword>
    <keyword>mail</keyword>
    <keyword>email</keyword>
    <keyword>IMAP</keyword>
    <keyword>POP3</keyword>
    <keyword>SMTP</keyword>
    <keyword>JMAP</keyword>
    <abstract>
      <?line 69?>

<t>A protocol that allows email applications to set up mail accounts and related accounts with only the email address and password.</t>
      <t>It defines how service providers can publish the account configuration, so that email applications can automatically find a working configuration. It reduces setup friction for their users, and calls to the support for the service provider.</t>
      <t>Although the discovery process starts with an email address, the protocol is not limited setting up email accounts, but can also set up calendar, contact and file sync, video conference accounts and other accounts that are connected to the same user account.</t>
      <t>This protocol uses a well-known address and DNS lookups, based on the email address domain, to find the XML configuration file for the service provider.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://benbucksch.github.io/autoconfig-spec/draft-ietf-mailmaint-autoconfig.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-mailmaint-autoconfig/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        mailmaint Working Group mailing list (<eref target="mailto:mailmaint@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mailmaint/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/mailmaint/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/benbucksch/autoconfig-spec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 79?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Configuring email, calendar and contacts client applications for a given user account
at a specific service provider is often a tedious, error-prone and unnerving process.
Even technical users struggle to find the right combination of hostname, port number,
security protocols, authentication methods and forms of username. Less technical users
often abort entirely. This difficulty is one of the primary factors why many users use
provider-specific applications which use proprietary internal protocols instead of
generic provider-independent client applications that use open protocols specified
by the IETF. This in turn leads to significantly less choice for end users in their
everyday user experience for communication, already today. Long-term, this leads to an errosion of
standards support and the ability for end users to use the software of their choice.</t>
      <t>This protocol allows users to set up their existing email account in a email client application,
by entering only their name, email address, and password.
The application, by means of the Autoconfig protocol specified here, will determine all the other
parameters that are required, including IMAP or POP3 hostname, TLS configuration,
form of username, authentication method, and other settings, and likewise for SMTP.
Calendar, contact and file sync, video conference accounts and other
accounts that are connected to the same user account can be set up at the same time.</t>
      <t>The protocol works by first determining the domain from the email address, and
then querying well-known URLs at the email provider, which return the
configuration parameters in computer-readable form. Failing that, various
fallback sources can be applied, like a common database of configurations for
large email providers who do not directly support this protocol, or other
mechanisms to determine the configuration.</t>
      <t>While this Autoconfig protocol was originally conceived for configuring mail clients,
it can also be used for accounts of other types, like contacts and calendar
sync, chat, video conference, or online publishing. The primary concept and
limitation here is that these accounts are hosted by the same provider
as the email address.</t>
      <t>This protocol is in active production use since 15 years by major email clients,
and the configuration database contains configurations for over 80% of
all email accounts.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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 anchor="implementations">
      <name>Implementations</name>
      <t>Currently, this protocol or parts of it has been implemented by:</t>
      <ul spacing="normal">
        <li>
          <t><eref target="https://thunderbird.net">Thunderbird</eref></t>
        </li>
        <li>
          <t><eref target="https://parula.beonex.com">Parula</eref></t>
        </li>
        <li>
          <t><eref target="https://projects.gnome.org/evolution/">Evolution</eref></t>
        </li>
        <li>
          <t><eref target="https://userbase.kde.org/KMail">KMail</eref></t>
        </li>
        <li>
          <t><eref target="https://www.kontact.org">Kontact</eref></t>
        </li>
        <li>
          <t><eref target="https://k9mail.app">K9 Mail</eref> and
<eref target="https://www.thunderbird.net/mobile/">Thunderbird Mobile</eref></t>
        </li>
        <li>
          <t><eref target="https://email.faircode.eu">FairEmail</eref></t>
        </li>
        <li>
          <t><eref target="https://apps.nextcloud.com/apps/mail">NextCloud email</eref></t>
        </li>
        <li>
          <t><eref target="https://delta.chat/">Delta Chat</eref></t>
        </li>
      </ul>
      <t>and likely other mail clients.</t>
      <t>A large number of email domains already use AutoConfig to provide
the configuration to mail clients and allow an automatic setup.</t>
      <t>Some mail servers automatically provide AutoConfig files that follow
this specification, including <eref target="https://stalw.art/">Stalwart</eref>,
<eref target="https://mailcow.email/">Mailcow</eref> and many others.</t>
    </section>
    <section anchor="data-format">
      <name>Data format</name>
      <t>Whether the ISP or a common central database returns the configuration, the
resulting document <bcp14>MUST</bcp14> have the following data format and qualities.</t>
      <t>The format is in <xref target="XML"/>. The MIME type is <tt>text/xml</tt>.</t>
      <t>The seconds below define the XML and its meaning. Most sections start
with a concrete example of the elements that they define.</t>
      <section anchor="xml-configuration-file-example">
        <name>XML configuration file example</name>
        <t>The following example shows the syntax of the XML configuration file.</t>
        <artwork><![CDATA[
<?xml version="1.0"?>
<clientConfig version="1.2">
  <emailProvider id="example.com">
    <domain>example.com</domain>
    <domain>example.net</domain>

    <displayName>Google Workspace</displayName>
    <displayShortName>GMail</displayShortName>

      <!-- type=
      "imap": IMAP
      "pop3": POP3
      "jmap": JMAP
      "ews": Microsoft Exchange Web Services
      "activesync": Microsoft ActiveSync
      -->
    <incomingServer type="imap">
      <hostname>imap.example.com</hostname>
      <port>993</port>
        <!--
        "plain": no encryption
        "SSL": TLS on TLS-specific port
        "STARTTLS": mandatory upgrade to TLS via STARTTLS
        -->
      <socketType>SSL</socketType>
        <!-- Authentication methods:
        "password-cleartext": SASL PLAIN, LOGIN or protocol-native login.
        "password-encrypted": SASL CRAM-MD5, DIGEST-MD5 etc. Not TLS.
        "TLS-client-cert": TLS client certificate on TLS layer
        "OAuth2": Provider MUST adhere to section "OAuth2 requirements".
        "none": No authentication

        Multiple <authentication> elements per server
        configuration are valid. Clients will pick the first
        one that they support.
        -->
      <authentication>password-cleartext</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>

    <!-- There can be multiple incoming servers,
      and even multiple IMAP server configs.
      The first configuration is the preferred one, but the user or
      or client can choose the alternative configs. -->
    <incomingServer type="pop3">
      <hostname>pop.example.com</hostname>
      <port>995</port>
      <socketType>SSL</socketType>
      <authentication>password-cleartext</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>

    <!-- Needed only for IMAP or POP3 -->
    <outgoingServer type="smtp">
      <hostname>smtp.googlemail.com</hostname>
      <port>587</port>
      <socketType>STARTTLS</socketType>
        <!-- smtp-auth (RFC 2554, 4954) or other auth mechanism. -->
      <authentication>password-cleartext</authentication>
      <username>%EMAILADDRESS%</username>
    </outgoingServer>

    <incomingServer type="jmap">
      <url>https://jmap.example.com</url>
        <!-- Authentication methods
        "basic": RFC 7617
        "digest": RFC 7616
        "OAuth2": Provider MUST adhere to section "OAuth2 requirements".
        -->
      <authentication>OAuth2</authentication>
      <authentication>basic</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>

    <incomingServer type="ews">
      <url>https://mail.example.com/EWS/Exchange.asmx</url>
      <username>%EMAILADDRESS%</username>
      <authentication>basic</authentication>
    </incomingServer>

    <incomingServer type="activesync">
      <url>https://mail.example.com/Microsoft-Server-ActiveSync</url>
      <username>%EMAILADDRESS%</username>
      <authentication>OAuth2</authentication>
    </incomingServer>

    <documentation url="https://www.example.com/help/mail/">
      <descr lang="en">Configure mail app for IMAP</descr>
      <descr lang="de">Email mit IMAP konfigurieren</descr>
    </documentation>

  </emailProvider>

  <addressbook type="carddav">
    <url>https://contacts.example.com/remote.php/dav</url>
    <authentication>basic</authentication>
    <username>%EMAILADDRESS%</username>
  </addressbook>

  <calendar type="caldav">
    <url>https://calendar.example.com/remote.php/dav</url>
    <authentication>basic</authentication>
    <username>%EMAILADDRESS%</username>
  </calendar>

    <!-- Upload files, allowing the user to share them.
    This can be used to send links instead of attachments,
    or to set up a file sync folder on the user's desktop.
    -->
  <fileShare type="webdav">
    <url>https://share.example.com/remote.php/dav</url>
    <authentication>basic</authentication>
    <username>%EMAILADDRESS%</username>
  </fileShare>

  <chatServer type="xmpp">
    <url>wss://example.com:5281/xmpp-websocket</url>
    <authentication>basic</authentication>
    <username>%EMAILADDRESS%</username>
  </chatServer>

  <chatServer type="xmpp">
    <hostname>xmpp.example.com</hostname>
    <port>5223</port>
    <socketType>TLS</socketType>
    <authentication>password-cleartext</authentication>
    <username>%EMAILADDRESS%</username>
  </chatServer>

  <videoConference type="opentalk">
    <url>https://talk.example.com/login</url>
    <authentication>OAuth2</authentication>
    <username>%EMAILADDRESS%</username>
  </videoConference>

    <!-- OAuth2 configuration for native public client apps.
    Gives e.g. clientID, expiry, and login page.
    The provider MUST adhere to "Open Client OAuth2 profile".
    -->
  <oAuth2>
    <authURL>https://login.example.com/auth</authURL>
    <tokenURL>https://login.example.com/token</tokenURL>
    <issuer>login.example.com</issuer>
    <scope>IMAP POP3 SMTP CalDAV CardDAV WebDAV offline_access</scope>
    <clientID>open</clientID>
    <!-- optional -->
    <clientSecret>give-me-your-password</clientSecret>
  </oAuth2>

  <clientConfigUpdate url="https://www.example.com/config/mail.xml" />

</clientConfig>
]]></artwork>
      </section>
      <section anchor="global-elements">
        <name>Global elements</name>
        <t>The file starts with an XML header, e.g. <tt>&lt;?xml version="1.0"?&gt;</tt>,
and is encoded in UTF-8 without BOM.</t>
        <section anchor="clientconfig">
          <name>clientConfig</name>
          <t>The root element of the XML file is <tt>&lt;clientConfig version="1.2"&gt;</tt>.</t>
          <t>The <tt>version</tt> is <tt>1.2</tt> for the version defined in this specification. <tt>1.1</tt> is
a compatible previous version of this protocol: <xref target="Autoconfig1.1"/>. Higher versions are for future specifications.
The client <bcp14>MUST NOT</bcp14> reject a configuration file solely based on the version number.</t>
        </section>
        <section anchor="emailprovider">
          <name>emailProvider</name>
          <t><tt>&lt;emailProvider id="example.com"&gt;</tt></t>
          <t>Element <tt>&lt;emailProvider&gt;</tt> is within the root element.
This element has no semantic purpose and exists for legacy reasons only,
but its content is significant.</t>
          <t>The <tt>id</tt> is a unique string that typically matches the primary domain of the provider. The syntax of the ID is the same as for domain and hostname.</t>
          <t>Within <tt>&lt;emailProvider&gt;</tt> are <tt>&lt;domain&gt;</tt>, <tt>&lt;displayName&gt;</tt> and
<tt>&lt;displayShortName&gt;</tt>, <tt>&lt;documentation&gt;</tt>, <tt>&lt;incomingServer&gt;</tt> and
<tt>&lt;outgoingServer&gt;</tt>.</t>
        </section>
        <section anchor="domain">
          <name>domain</name>
          <artwork><![CDATA[
<domain>example.com</domain>
<domain>example.net</domain>
<domain purpose="mx">example-hosting.com</domain>
]]></artwork>
          <t>The content of the <tt>&lt;domain&gt;</tt> element defines which email addresses this config
is valid for. For example, a configuration with <tt>&lt;domain&gt;example.com&lt;/domain&gt;</tt> is valid for
email address <tt>fred@example.com</tt>.</t>
          <t>Multiple <tt>&lt;domain&gt;</tt> elements may be included, which means that the configuration is
valid for all of these domains. Their order has no meaning - they may be sorted
by number of users, importance to the provider, or alphabethically.</t>
          <t><tt>&lt;domain purpose="mx"&gt;</tt> specifies the domain name of the MX server
of this provider. It is used during the configuration file lookup using MX
server names, as specified in <xref target="mx"/> <em>MX</em>. If the email address that is to be configured has an MX server that is within the domain given by <tt>&lt;domain purpose="mx"&gt;</tt>, then this configuration is applicable for that email address.
Adding the <tt>purpose</tt> attribute is <bcp14>RECOMMENDED</bcp14>.</t>
        </section>
        <section anchor="displayname-and-displayshortname">
          <name>displayName and displayShortName</name>
          <artwork><![CDATA[
<displayName>Google Workspace</displayName>
<displayShortName>GMail</displayShortName>
]]></artwork>
          <t>The <tt>&lt;displayName&gt;</tt> element contains the name of the provider, e.g.
as preferred by the marketing of the provider itself. It <bcp14>SHOULD</bcp14> be no
longer than 30 characters, but <bcp14>MUST</bcp14> be no longer than 60 characters.</t>
          <t>The <tt>&lt;displayShortName&gt;</tt> element contains the name of the provider, as
typically used by end users. It <bcp14>SHOULD</bcp14> be no longer than 12
characters, and it <bcp14>MUST NOT</bcp14> be longer than 20 characters.</t>
          <t>Both elements may used to display the provider or account name by the
mail client UI, which has reasonable expectations on length and
expressiveness.</t>
          <t>The <tt>&lt;displayShortName&gt;</tt> in particular may be used by the mail client
together with the email address as partial base for the account name,
and during everyday use of the app to represent the account, so it
<bcp14>SHOULD</bcp14> be short, distinctive and represent the provider in the way
end users refer and think of it.</t>
        </section>
      </section>
      <section anchor="documentation">
        <name>documentation</name>
        <artwork><![CDATA[
<documentation url="https://www.example.com/help/mail/">
  <descr lang="en">Configure mail app for IMAP</descr>
  <descr lang="de">Email mit IMAP konfigurieren</descr>
</documentation>
]]></artwork>
        <t>This is purely informational and not required for the automatic setup.</t>
        <t>This element contains the end-user help webpage at the provider that describes the mail
server settings. The configuration may be based on that page, but does not
necessarily have to match it, e.g. when a better configuration is available
than the one described on the webpage.</t>
        <t>The <tt>url</tt> attribute contains the URL of the webpage. The <tt>&lt;descr&gt;</tt>
content describes the content and purpose of the page and why it's
referenced here.
Multiple <tt>&lt;descr&gt;</tt> elements with different <tt>lang</tt> attributes are
allowed, whereby the <tt>lang</tt> attribute contains the 2-letter ISO language
code, like the HTML <tt>lang</tt> attribute.</t>
      </section>
      <section anchor="server-sections">
        <name>Server sections</name>
        <t><tt>&lt;incomingServer type="jmap"&gt;</tt>, <tt>&lt;calendar type="carddav"&gt;</tt> etc.</t>
        <ul spacing="normal">
          <li>
            <t>The <tt>type</tt> attribute specifies the wire protocol that this server uses. See
<xref target="type"/> <em>type</em> below.</t>
          </li>
          <li>
            <t><tt>&lt;incomingServer&gt;</tt> specifies the server that the mail client retrieves email
from and submits changes to. In many protocols, this server is also used for
sending email.</t>
          </li>
          <li>
            <t><tt>&lt;outgoingServer&gt;</tt> is used for sending, if <tt>&lt;incomingServer&gt;</tt> does not
support that directly.
This is currently used only for SMTP in combination with IMAP and POP3.</t>
          </li>
          <li>
            <t><tt>&lt;incomingServer&gt;</tt> and <tt>&lt;outgoingServer&gt;</tt> are within element
<tt>&lt;emailProvider&gt;</tt>, whereas <tt>&lt;calendar&gt;</tt>, <tt>&lt;addressbook&gt;</tt>, <tt>&lt;fileShare&gt;</tt>,
<tt>&lt;chatServer&gt;</tt> and <tt>&lt;videoConference&gt;</tt> are within the
root element <tt>&lt;clientConfig&gt;</tt>, i.e. one level higher.
Other than that, they work the same.</t>
          </li>
          <li>
            <t>In some protocols, the <tt>&lt;incomingServer&gt;</tt> server additionally provides
calendars, addressbooks, and other data. For such protocols, the same server
is not repeated in other specific server sections like <tt>&lt;calendar&gt;</tt>.
Calendar-only clients supporting such multi-purpose protocols <bcp14>MUST</bcp14> read the
<tt>&lt;incomingServer&gt;</tt> (nonewithstanding that it's within legacy element
<tt>&lt;emailProvider&gt;</tt>)
and test and use the parts of the protocol needed for their
functionality.</t>
          </li>
        </ul>
        <section anchor="multiple-server-sections">
          <name>Multiple server sections</name>
          <t>Server sections of the same type (like <tt>&lt;incomingServer&gt;</tt> or <tt>&lt;calendar&gt;</tt>)
may appear multiple times in the same configuration file.
In this case, the one listed first is preferred by the configuration provider.
Unless the client has specific other requirements, it <bcp14>SHOULD</bcp14> pick the first
config.</t>
          <t>The client may deviate from this recommendation, because</t>
          <ul spacing="normal">
            <li>
              <t>the client doesn't support a higher-priority protocol, e.g. a JMAP
configuraion is listed first and is the most preferred, but the
client does not support JMAP yet, or</t>
            </li>
            <li>
              <t>the client doesn't support a configuration setting, e.g. it
doesn't support STARTTLS, or the configuration specifies only an OAuth2
authentication and the client either doesn't implement OAuth2, or
there is a problem in the OAuth2 flow with this provider, or</t>
            </li>
            <li>
              <t>the client has a specific policy to prefer another configuration,
e.g. a STARTTLS configuration is listed before a direct TLS config, and
the client has a policy of preferring direct TLS, or likewise
the client prefers IMAP over POP3.</t>
            </li>
          </ul>
          <t>Server types, elements and protocols that the client does not support
<bcp14>MUST</bcp14> be ignored and the client <bcp14>MUST</bcp14> continue to parse the other
server sections, which may contain configs that the client
understands and supports. The client ignores the file only if there
is no supported and working configuration found.</t>
        </section>
      </section>
      <section anchor="type">
        <name>type</name>
        <t>The <tt>type</tt> attribute on the server section element specifies the
wire protocol that this server uses.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Element</th>
              <th align="left">Type</th>
              <th align="left">Base</th>
              <th align="left">Name</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>jmap</tt></td>
              <td align="left">URL</td>
              <td align="left">JMAP</td>
              <td align="left">
                <xref target="JMAP-Core"/>, <xref target="JMAP-Mail"/>, <xref target="JMAP-WebSocket"/>, <xref target="JMAP-Contacts"/> et al</td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>imap</tt></td>
              <td align="left">TCP</td>
              <td align="left">IMAP</td>
              <td align="left">
                <xref target="IMAP4rev2"/> or <xref target="IMAP4rev1"/>, et al</td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>pop3</tt></td>
              <td align="left">TCP</td>
              <td align="left">POP3</td>
              <td align="left">
                <xref target="POP3"/>, <xref target="POP3-SASL"/></td>
            </tr>
            <tr>
              <td align="left">outgoingServer</td>
              <td align="left">
                <tt>smtp</tt></td>
              <td align="left">TCP</td>
              <td align="left">SMTP</td>
              <td align="left">
                <xref target="SMTP"/>, <xref target="EMail"/></td>
            </tr>
            <tr>
              <td align="left">calendar</td>
              <td align="left">
                <tt>caldav</tt></td>
              <td align="left">URL</td>
              <td align="left">CalDAV</td>
              <td align="left">
                <xref target="CalDAV"/></td>
            </tr>
            <tr>
              <td align="left">addressbook</td>
              <td align="left">
                <tt>carddav</tt></td>
              <td align="left">URL</td>
              <td align="left">CardDav</td>
              <td align="left">
                <xref target="CardDav"/></td>
            </tr>
            <tr>
              <td align="left">fileShare</td>
              <td align="left">
                <tt>webdav</tt></td>
              <td align="left">URL</td>
              <td align="left">WebDAV</td>
              <td align="left">
                <xref target="WebDAV"/></td>
            </tr>
            <tr>
              <td align="left">chatServer</td>
              <td align="left">
                <tt>xmpp</tt></td>
              <td align="left">URL</td>
              <td align="left">XMPP</td>
              <td align="left">
                <xref target="XMPP"/>, <xref target="XMPP-IM"/>, <xref target="XMPP-WebSocket"/></td>
            </tr>
            <tr>
              <td align="left">chatServer</td>
              <td align="left">
                <tt>xmpptcp</tt></td>
              <td align="left">TCP</td>
              <td align="left">XMPP</td>
              <td align="left">
                <xref target="XMPP"/>, <xref target="XMPP-IM"/></td>
            </tr>
            <tr>
              <td align="left">chatServer</td>
              <td align="left">
                <tt>matrix</tt></td>
              <td align="left">URL</td>
              <td align="left">Matrix</td>
              <td align="left">
                <xref target="Matrix"/></td>
            </tr>
            <tr>
              <td align="left">setupServer</td>
              <td align="left">
                <tt>managesieve</tt></td>
              <td align="left">TCP</td>
              <td align="left">ManageSieve</td>
              <td align="left">
                <xref target="ManageSieve"/>, <xref target="Sieve"/></td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>ews</tt></td>
              <td align="left">URL</td>
              <td align="left">Exchange Web Services</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>activeSync</tt></td>
              <td align="left">URL</td>
              <td align="left">ActiveSync</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>graph</tt></td>
              <td align="left">URL</td>
              <td align="left">Microsoft Graph</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>Other protocol names can be added using an IANA registry. See the
corresponding section below.</t>
      </section>
      <section anchor="url-based-protocols">
        <name>URL-based protocols</name>
        <artwork><![CDATA[
<incomingServer type="jmap">
  <url>https://jmap.example.com/session</url>
  <authentication>basic</authentication>
  <username>%EMAILADDRESS%</username>
</incomingServer>
]]></artwork>
        <t>For server sections with protocols that are based on HTTPS or other
URLs, the following elements are supported:</t>
        <section anchor="url">
          <name>url</name>
          <t>Example: <tt>&lt;url&gt;https://jmap.example.com/session&lt;/url&gt;</tt></t>
          <t>The content of the <tt>&lt;url&gt;</tt> element contains the <xref target="URL"/> where to contact the server.</t>
          <t>The URL scheme will normally be HTTPS and the URL starts with <tt>https://</tt> (<xref section="4.2.2" sectionFormat="comma" target="HTTP"/>).
Some protocols may use other schemes, e.g. WebSockets <tt>wss://</tt> (<xref section="3" sectionFormat="comma" target="WebSocket"/>).</t>
        </section>
        <section anchor="authentication">
          <name>authentication</name>
          <t>Example: <tt>&lt;authentication system="http"&gt;basic&lt;/authentication&gt;</tt> or
<tt>&lt;authentication&gt;OAuth2&lt;/authentication&gt;</tt></t>
          <t>The content of the <tt>&lt;authentication&gt;</tt> element defines which HTTP
authentication method to use. The <tt>system="http"</tt> attribute
signals that the value refers to a <tt>WWW-Authenticate</tt> mechanism, but the
attribute is optional when a https: or wss: URL is used.</t>
          <ul spacing="normal">
            <li>
              <t><tt>basic</tt>: Authenticate to the HTTP server using
<tt>WWW-Authenticate: Basic</tt>. See <xref target="HTTP-Basic-Auth"/>.</t>
            </li>
            <li>
              <t><tt>digest</tt>: Authenticate to the HTTP server using
<tt>WWW-Authenticate: Digest</tt>. See <xref target="HTTP-Digest-Auth"/></t>
            </li>
            <li>
              <t><tt>OAuth2</tt>: Authenticate to the HTTP server using
<tt>WWW-Authenticate: Bearer</tt>. See <xref section="3" sectionFormat="comma" target="OAuth2"/>.
The provider <bcp14>MUST</bcp14> adhere to the requirements defined in <xref target="oauth2"/>
                <em>OAuth2 requirements</em>.
Note: The XML element for OAuth2 is
<tt>&lt;authentication&gt;OAuth2&lt;/authentication&gt;</tt> without system attribute.
<tt>&lt;authentication system="http"&gt;Bearer&lt;/authentication&gt;</tt> is invalid.</t>
            </li>
          </ul>
          <t>The rules as specified in <xref target="auth-alternatives"/> <em>Multiple authentication alternatives</em> and
<xref target="auth-verification"/> <em>Authentication verification and fallback</em> apply here as well.</t>
        </section>
        <section anchor="username">
          <name>username</name>
          <t><tt>&lt;username&gt;%EMAILADDRESS%&lt;/username&gt;</tt> or <tt>&lt;username&gt;fred&lt;/username&gt;</tt></t>
          <t>The username to use for the authentication method.</t>
          <t>Placeholders <bcp14>MUST</bcp14> be replaced before using the actual value. See <xref target="placeholders"/> <em>Placeholders</em>.</t>
        </section>
      </section>
      <section anchor="tcp-based-protocols">
        <name>TCP-based protocols</name>
        <t>For server sections with protocols that are based on TCP,
the following elements are supported:</t>
        <artwork><![CDATA[
<incomingServer type="imap">
  <hostname>imap.example.com</hostname>
  <port>993</port>
  <socketType>SSL</socketType>
  <authentication>password-cleartext</authentication>
  <username>%EMAILADDRESS%</username>
</incomingServer>
]]></artwork>
        <section anchor="hostname">
          <name>hostname</name>
          <t><tt>&lt;hostname&gt;imap.example.com&lt;/hostname&gt;</tt></t>
          <t>The content of the <tt>&lt;hostname&gt;</tt> element contains the fully qualified hostname
of the server.</t>
        </section>
        <section anchor="port">
          <name>port</name>
          <t><tt>&lt;port&gt;993&lt;/port&gt;</tt></t>
          <t>The content of the <tt>&lt;port&gt;</tt> element is an integer and contains the TCP port
number at the hostname. The port is typically specific to the combination of
the wire protocol and socketType.</t>
        </section>
        <section anchor="sockettype">
          <name>socketType</name>
          <t><tt>&lt;socketType&gt;SSL&lt;/socketType&gt;</tt></t>
          <t>The content of the <tt>&lt;socketType&gt;</tt> element specifies whether to use direct TLS,
STARTTLS, or none of these.</t>
          <ul spacing="normal">
            <li>
              <t><tt>SSL</tt>: Directly contact the TCP port using TLS. TLS version 1.2
<xref target="TLSv1.2"/>
or higher <bcp14>SHOULD</bcp14> be used. Higher versions may be required based on security
situation, server support, and client policy decisions.</t>
            </li>
            <li>
              <t><tt>STARTTLS</tt>: Contact the TCP port first using an unencrypted plain socket,
then upgrade to TLS using the protocol-specific STARTTLS specification
<xref target="STARTTLS"/>. With this configuration,
STARTTLS <bcp14>MUST</bcp14> be used and TLS <bcp14>MUST</bcp14> be used after the STARTTLS upgrade. If
the upgrade to TLS fails for whatever reason, the client <bcp14>MUST</bcp14>
disconnect and <bcp14>MUST NOT</bcp14> try to authenticate. This prevents downgrade attacks
that could otherwise steal passwords, user data, and impersonate users.</t>
            </li>
            <li>
              <t><tt>plain</tt>: Unencrypted connection, with neither TLS nor STARTTLS. May be
needed for local servers. Deprecated.</t>
            </li>
          </ul>
          <section anchor="tls-validation">
            <name>TLS validation</name>
            <t>In all cases where TLS is used, either directly or using STARTTLS,
the client <bcp14>MUST</bcp14> validate the TLS certificate and ensure that the
certificate is valid for the hostname given in this config. If not,
or if the TLS certificate is otherwise invalid, the client <bcp14>MUST</bcp14>
either disconnect or <bcp14>MAY</bcp14> warn the user of the
dangers and ask for user confirmation. Such fallback with warning and
confirmation is allowed only at original configuration and <bcp14>MUST NOT</bcp14> be
allowed during normal everyday connection.</t>
            <t>If the server had a valid TLS certificate during original configuration
and the TLS certificate is later invalid during normal connection, the
client <bcp14>MUST</bcp14> disconnect.</t>
            <t>As an exception, if the problem is that the TLS certificate expired recently,
the client <bcp14>MAY</bcp14> choose to not consider that a failure during normal connection
and <bcp14>MAY</bcp14> use other recovery mechanisms.</t>
          </section>
        </section>
        <section anchor="authentication-1">
          <name>authentication</name>
          <t><tt>&lt;authentication&gt;password-cleartext&lt;/authentication&gt;</tt></t>
          <t>The content of the <tt>&lt;authentication&gt;</tt> element defines which authentication
method to use. This can be either an authentication defined by the wire
protocol, or a SASL scheme, or a successor to SASL.</t>
          <ul spacing="normal">
            <li>
              <t><tt>password-cleartext</tt>: Send password in the clear.
Uses either the native authentication method defined by the wire protocol
(if that is based on plaintext passwords), or a SASL authentication scheme
like SASL <tt>PLAIN</tt> or SASL <tt>LOGIN</tt>, or a successor.</t>
            </li>
            <li>
              <t><tt>password-encrypted</tt>: An encrypted or hashed password mechanism.
Includes SASL <tt>CRAM-MD5</tt> <xref target="CRAM-MD5"/>,
<tt>DIGEST-MD5</tt> <xref target="DIGEST-MD5"/>,
<tt>SCRAM-SHA-256-PLUS</tt> <xref target="SCRAM"/>, and successors.
TLS by itself does not qualify as <tt>password-encrypted</tt>.</t>
            </li>
            <li>
              <t><tt>NTLM</tt>: Legacy Windows login mechanisms NTLM or NTLMv2.</t>
            </li>
            <li>
              <t><tt>GSSAPI</tt>: <xref target="Kerberos"/> or <xref target="GSSAPI"/>,
 a single-signon mechanism based on TCP.</t>
            </li>
            <li>
              <t><tt>TLS-client-cert</tt>: On the SSL/TLS layer, after server request, the client
sends a TLS client certificate for the user, possibly after letting the user
select confirm it. Uses SASL <tt>EXTERNAL</tt> scheme <xref target="SASL"/>, Appendix A.</t>
            </li>
            <li>
              <t><tt>OAuth</tt>: OAuth. SASL <tt>OAUTHBEARER</tt> <xref target="SASL-OAuth2"/> (current) or
<tt>XOAUTH2</tt> (deprecated) or successors.
The provider <bcp14>MUST</bcp14> adhere to the requirements defined in <xref target="oauth2"/> <em>OAuth2 requirements</em>.</t>
            </li>
            <li>
              <t><tt>client-IP-address</tt>: Server can be used without any explicit authentication,
and the client is admitted based on its IP address.
This may be the case for some SMTP servers on local networks.
Not supported on the Internet. Deprecated, because it breaks mobile devices.</t>
            </li>
          </ul>
          <section anchor="recommending-specific-sasl-schemes">
            <name>Recommending specific SASL schemes</name>
            <t><tt>&lt;authentication system="sasl"&gt;SCRAM-SHA-256-PLUS&lt;/authentication&gt;</tt></t>
            <t>A specific SASL scheme <xref target="SASL"/> <bcp14>MAY</bcp14> be specified using
the specific SASL authentication scheme name, e.g.
<tt>SCRAM-SHA-256-PLUS</tt> <xref target="SCRAM"/>. To signal that, the
<tt>&lt;authentication&gt;</tt> element <bcp14>SHOULD</bcp14> have the <tt>system</tt> attribute set
to value <tt>sasl</tt>, i.e. <tt>&lt;authentication system="sasl"&gt;</tt>.</t>
            <t>In such a case, the server configuration section <bcp14>SHOULD</bcp14> also
specify a more generic authentication mechanism as a lower priority
alternative. That would make clients use the specific authentication
mechanism, if they support it, and other clients will use the more generic
authentication mechanism.</t>
          </section>
          <section anchor="auth-alternatives">
            <name>Multiple authentication alternatives</name>
            <t>The <tt>&lt;authentication&gt;</tt> element may appear multiple times within a server
section. In this case, they are ordered from the most to the least preferred
method, based on the policy of the provider.</t>
            <t>If a client does not support a
specific authentication scheme, or does not have the conditions to use it,
e.g. the client does not have a Client ID for this OAuth2 server, then the
client <bcp14>MUST</bcp14> skip this <tt>&lt;authentication&gt;</tt> element and use the next in the list
instead.</t>
            <t>If none of the authentication methods are supported by the client,
the client <bcp14>MUST</bcp14> ignore that server section and use the remaining server
sections.</t>
          </section>
          <section anchor="auth-verification">
            <name>Authentication verification and fallback</name>
            <t>The client <bcp14>SHOULD</bcp14> test the configuration during setup, with an actual
authentication attempt.</t>
            <t>If the authentication fails, the client decides based on the
authentication error code how to proceed. For example, if the authentiocation
method itself failed, or the error code indicates a systemic failure,
the client <bcp14>SHOULD</bcp14> use a lower-priority authentication method from the
list.</t>
            <t>If the authentication method is working, but the error code indicated
that the username or password was wrong, then the client <bcp14>MAY</bcp14> ask the
user to correct the password.</t>
            <t>For that reason, the server <bcp14>SHOULD</bcp14> be specific in the error codes and
allow the client to distinguish between</t>
            <ul spacing="normal">
              <li>
                <t>an unsupported or non-working authentication method or other
systemic failures</t>
              </li>
              <li>
                <t>the client being rejected by the server</t>
              </li>
              <li>
                <t>the user being blocked from login</t>
              </li>
              <li>
                <t>the user authentication failing due to wrong password or username</t>
              </li>
              <li>
                <t>other reasons</t>
              </li>
            </ul>
            <t>If the server were to return the same error code for all these cases, the
client might tell the user that the password is wrong, and the user starts
attempting other passwords, potentially revealing passwords to other
higher-value assets, which is highly dangerous.</t>
            <t>If the authentification succeeded, the client <bcp14>SHOULD</bcp14> take note of the
working configutation and use that for all subsequent connections,
until an explicit reconfiguration occurs. During normal everyday operation,
the client <bcp14>SHOULD NOT</bcp14> fallback nor attempt multiple different authentication
methods.</t>
          </section>
        </section>
        <section anchor="username-1">
          <name>username</name>
          <t><tt>&lt;username&gt;%EMAILADDRESS%&lt;/username&gt;</tt> or <tt>&lt;username&gt;fred&lt;/username&gt;</tt></t>
          <t>The username to use for the authentication method.</t>
          <t>Placeholders <bcp14>MUST</bcp14> be replaced before using the actual value. See next <xref target="placeholders"/> <em>Placeholders</em>.</t>
        </section>
      </section>
      <section anchor="placeholders">
        <name>Placeholders</name>
        <t>The <tt>&lt;username&gt;</tt> value may contain placeholders.</t>
        <t>The following special substrings in the value <bcp14>MUST</bcp14> be
replaced by the client, before the value is actually used.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Placeholder</th>
              <th align="left">Replace with</th>
              <th align="left">Example</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>%EMAILADDRESS%</tt></td>
              <td align="left">E-Mail-Address of the user</td>
              <td align="left">
                <tt>fred@example.com</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>%EMAILLOCALPART%</tt></td>
              <td align="left">Part before <tt>@</tt> in the E-Mail-Address</td>
              <td align="left">
                <tt>fred</tt></td>
            </tr>
            <tr>
              <td align="left">
                <tt>%EMAILDOMAIN%</tt></td>
              <td align="left">Part after <tt>@</tt> in the E-Mail-Address</td>
              <td align="left">
                <tt>example.com</tt></td>
            </tr>
          </tbody>
        </table>
        <t>Some clients <bcp14>MAY</bcp14> also support the same placeholders for the fields
<tt>&lt;hostname&gt;</tt>, <tt>&lt;url&gt;</tt>, <tt>&lt;authURL&gt;</tt>, <tt>&lt;tokenURL&gt;</tt>, <tt>&lt;issuer&gt;</tt>,
<tt>&lt;displayName&gt;</tt> and <tt>&lt;displayShortName&gt;</tt>.</t>
      </section>
      <section anchor="xml-validation">
        <name>XML validation</name>
        <t>The client <bcp14>SHOULD</bcp14> validate that the configuration file is valid XML, and if
the XML syntax is invalid, the client <bcp14>SHOULD</bcp14> ignore the entire file. In
contrast, if there are merely unknown elements or
attributes, the client <bcp14>MUST NOT</bcp14> ignore the file.</t>
        <t>The client <bcp14>SHOULD</bcp14> regard only the elements and attributes that are
supported by the client, and <bcp14>MUST</bcp14> ignore the others that are unknown
to the client.</t>
        <t>The client may optionally want to validate the XML before parsing it.
This is not required. If the client choses to validate, the validation
<bcp14>MUST</bcp14> ignore unknown elements and attributes and <bcp14>MUST NOT</bcp14>
drop or ignore a configuration that contains unknown elements and
attributes. This is required to allow future extensions of the format
without breaking existing clients.</t>
      </section>
    </section>
    <section anchor="configuration-retrieval-by-mail-clients">
      <name>Configuration retrieval by mail clients</name>
      <t>The mail client application, when it needs the configuration for a given email
address, will perform several steps to retrieve the configuration from various
sources.</t>
      <t>The steps are ordered by priority. They may all be requested at the same time,
but a higher priorty result that is available <bcp14>SHOULD</bcp14> be preferred over a lower
priority one, even if the lower priority one is available earlier. Exceptions
apply when a higher priority result is either invalid or outdated, or the
fetch method is less secure. Lower priority requests <bcp14>MAY</bcp14> be cancelled, if a
valid higher priority result has been successfully received. The priority is
expressed below with the number before the URL or location, with lower numbers
meaning higher priority, e.g. 1.2 has higher priority than 4.1.</t>
      <t>In the URLs below, <tt>%EMAILADDRESS%</tt> <bcp14>SHALL</bcp14> be replaced with the email address
that the user entered and wishes to use, and <tt>%EMAILDOMAIN%</tt> <bcp14>SHALL</bcp14> be replaced
with the email domain extracted from the email address. For example, for
<tt>fred@example.com</tt>, the email domain is <tt>example.com</tt>, and for
<tt>fred@test.cs.example.net</tt>, the email domain is <tt>test.cs.example.net</tt>.</t>
      <t>For full support of this specification, all "Required" and "Recommended"
mechanisms <bcp14>MUST</bcp14> be implemented and working. For partial support of this
specification, all "Required" mechanisms <bcp14>MUST</bcp14> be implemented and working, and
in this case, the implementor <bcp14>SHALL</bcp14> make explicit when advertizing or referring
to Autoconfig that there is only partial support of this specification.</t>
      <section anchor="mail-provider">
        <name>Mail provider</name>
        <t>The first step is to directly ask the mail provider and allow it to return the
configuration. This step ensures that the protocol is decentralized and the
mail provider is in control of the configuration issued to mail clients.</t>
        <ul spacing="normal">
          <li>
            <t>1.1. <tt>https://autoconfig.%EMAILDOMAIN%/mail/config-v1.1.xml?emailaddress=%EMAILADDRESS%</tt> (Required. <tt>emailaddress</tt> is Optional)</t>
          </li>
          <li>
            <t>1.2. <tt>https://%EMAILDOMAIN%/.well-known/autoconfig/mail/config-v1.1.xml</tt> (Optional)</t>
          </li>
          <li>
            <t>1.3. <tt>http://autoconfig.%EMAILDOMAIN%/mail/config-v1.1.xml</tt> (Optional)</t>
          </li>
        </ul>
        <t>For example:</t>
        <ul spacing="normal">
          <li>
            <t>1.1. <tt>https://autoconfig.example.com/mail/config-v1.1.xml?emailaddress=fred@example.com</tt></t>
          </li>
          <li>
            <t>1.2. <tt>https://example.com/.well-known/autoconfig/mail/config-v1.1.xml</tt></t>
          </li>
          <li>
            <t>1.3. <tt>http://autoconfig.example.com/mail/config-v1.1.xml</tt></t>
          </li>
        </ul>
        <t>Step 1.3. is mainly for legacy servers. Many current deployments
use this HTTP URL.</t>
        <section anchor="customzing-the-configuration-for-a-specific-user">
          <name>Customzing the configuration for a specific user</name>
          <t>To allow the mail provider to return a configuration adjusted for that mailbox,
the client sends the email address as query parameter in URL 1.1.</t>
          <t>For example, a global company might want to locate the mailbox geographically
close to the user, in the same country or even in the same office building.</t>
          <t>However, while the protocol allows for such heterogenous configurations, mail
providers are discouraged from doing so, and are instead encouraged to provide
one single configuration for all their users. For example, DNS resolution
based on location, mail proxy servers, or other techniques as necessary, can
be used to route the traffic and host the mail efficiently.</t>
          <t>This mechanism also allows the Autoconfig server to map the email address to
a username that cannot be expressed using the Placeholders (see <xref target="placeholders"/>).
However, this method is discouraged. Instead, the email server login should
accept email addresses as username, and doing the mapping to internal
usernames at login time, which avoids the need for the client to know a
different username.</t>
          <t>Autoconfig servers that customize the returned configuration file to the
email address should avoid that email addresses can be tested for validity
by hostile parties like spammers or attackers.
For that reason, Autoconfig servers <bcp14>SHOULD</bcp14> return a real configuration,
even if the email address sent as URL parameter does not exist.
If the query contains a non-existing email address,
the server should not return an error nor a fake configuration, but rather
a random real configuation, e.g. a random host out of the pool of real hosts.
Supporting mail clients should test the login before completing setup,
so spelling mistakes in the email address will be signaled to the user
as login error in later stages of the setup process.</t>
        </section>
      </section>
      <section anchor="central-database">
        <name>Central database</name>
        <t>The ISPDB is a central database that contains the configurations for most
mail providers with a market share larger than 0.1%, and contains configurations
for half of the email accounts in the world.</t>
        <t>This is a useful fallback that allows mail clients to support mail providers
which do not host a configuration server described in the previous step.
This can increase the success rate of finding a valid configuration up to 10-fold.</t>
        <t>The mail client application may choose the mail configuration database provider. A
public mail configuration database is available at base URL <tt>https://v1.ispdb.net/</tt>.</t>
        <t><tt>%ISPDB%</tt> below is the base URL of that database.</t>
        <ul spacing="normal">
          <li>
            <t>2.1. <tt>%ISPDB%%EMAILDOMAIN%</tt> (Recommended)</t>
          </li>
        </ul>
        <t>For example:</t>
        <ul spacing="normal">
          <li>
            <t>2.1. <eref target="https://v1.ispdb.net/geologist.com">https://v1.ispdb.net/geologist.com</eref></t>
          </li>
        </ul>
      </section>
      <section anchor="mx">
        <name>MX</name>
        <t>Many companies do not maintain their own mail server, but let their email be
hosted by a hosting company, which is then responsible for the email of dozens
or thousands of domains. For these hosters, it may be difficult to set up the
configuration server (step 1.1.) with valid TLS certificate for each of their
customers, and to convince their customers to modify their root DNS
specifically for Autoconfig. On the other side, the ISPDB can only contain the
hosting company and cannot know all their customers. To handle such domains,
the protocol first needs to find the server hosting the email.</t>
        <t>If the previous mechanisms yield no result, the client <bcp14>SHOULD</bcp14> perform a DNS MX
lookup on the email domain, and retrieve the MX server (incoming SMTP server)
for that domain. Only the highest priority MX hostname is considered. From
that MX hostname, 2 values are extracted:</t>
        <ul spacing="normal">
          <li>
            <t>Extract only the second-level domain from the MX hostname, and use that as
value for <tt>%MXBASEDOMAIN%</tt>. To determine the second-level domain, use the
<eref target="https://publicsuffix.org">Public Suffic List</eref> or a similarly suited method,
to correctly handle domains like <tt>.co.uk</tt> and <tt>.com.au</tt>.</t>
          </li>
          <li>
            <t>Remove the first component from the MX hostname, i.e. everything up to and
including the first <tt>.</tt>, and use that as value for <tt>%MXFULLDOMAIN%</tt>. Use it
only if it is longer than <tt>%MXBASEDOMAIN%</tt>.</t>
          </li>
        </ul>
        <t>For example:</t>
        <ul spacing="normal">
          <li>
            <t>For <tt>mx.example.com</tt>, the MXFULLDOMAIN and MXBASEDOMAIN are both
<tt>example.com</tt>.</t>
          </li>
          <li>
            <t>For <tt>mx.example.co.uk</tt>, the MXFULLDOMAIN and MXBASEDOMAIN are both
<tt>example.co.uk</tt>.</t>
          </li>
          <li>
            <t>For <tt>mx.premium.europe.example.com</tt>, the MXFULLDOMAIN is
<tt>premium.europe.example.com</tt> and the MXBASEDOMAIN is <tt>example.com</tt>.</t>
          </li>
        </ul>
        <t>Then, attempt to retrieve the configuration for these MX domains, using the previous
methods:</t>
        <ul spacing="normal">
          <li>
            <t>3.1. <tt>https://autoconfig.%MXFULLDOMAIN%/mail/config-v1.1.xml?emailaddress=%EMAILADDRESS%</tt> (Required. <tt>emailaddress</tt> is Optional)</t>
          </li>
          <li>
            <t>3.2. <tt>https://autoconfig.%MXBASEDOMAIN%/mail/config-v1.1.xml?emailaddress=%EMAILADDRESS%</tt> (Recommended. <tt>emailaddress</tt> is Optional)</t>
          </li>
          <li>
            <t>3.3. <tt>%ISPDB%%MXFULLDOMAIN%</tt> (Recommended)</t>
          </li>
          <li>
            <t>3.4. <tt>%ISPDB%%MXBASEDOMAIN%</tt> (Recommended)</t>
          </li>
        </ul>
        <t>For example:</t>
        <ul spacing="normal">
          <li>
            <t>3.1. <tt>https://autoconfig.premium.europe.example.com/mail/config-v1.1.xml?emailaddress=fred@example.com</tt></t>
          </li>
          <li>
            <t>3.2. <tt>https://autoconfig.example.com/mail/config-v1.1.xml?emailaddress=fred@example.com</tt></t>
          </li>
          <li>
            <t>3.3. <tt>https://v1.ispdb.net/premium.europe.example.com</tt></t>
          </li>
          <li>
            <t>3.4. <tt>https://v1.ispdb.net/example.com</tt></t>
          </li>
        </ul>
      </section>
      <section anchor="local-disk">
        <name>Local disk</name>
        <t>For testing purposes, a mail client may want to define a location on the disk, relative
to the application installation directory, or relative to the user
configuration directory, which may contain a configuration file for a specific
domain, and which the mail client will use, if the above methods fail.</t>
        <ul spacing="normal">
          <li>
            <t>4.1. <tt>%USER_CONFIGURATION_DIR%/isp/%EMAILDOMAIN%.xml</tt> (Optional)</t>
          </li>
          <li>
            <t>4.2. <tt>%APP_INSTALL_DIR%/isp/%EMAILDOMAIN%.xml</tt> (Optional)</t>
          </li>
        </ul>
        <t>For example:</t>
        <ul spacing="normal">
          <li>
            <t>4.1. <tt>/home/fred/.config/acmemailapp/isp/example.com.xml</tt></t>
          </li>
          <li>
            <t>4.2. <tt>/opt/acmemailapp/isp/example.com.xml</tt></t>
          </li>
        </ul>
      </section>
      <section anchor="other-mechanisms">
        <name>Other mechanisms</name>
        <t>A mail client may want to implement other mechanisms to find a configuration, for
example Exchange AutoDiscover, DNS-SRV <xref target="RFC6186"/>,
or heuristic guessing. If the mail client
implements such alternative methods, and if they are less secure than some of
the mechanisms provided here, the alternative methods <bcp14>SHOULD</bcp14> be considered
only with lower priority (as defined above) than the more secure mechanisms
defined here. For evaluating other mechanisms, use similar criteria as
outlined in <xref target="security"/> <em>Security considerations</em>.</t>
      </section>
      <section anchor="manual-configuration">
        <name>Manual configuration</name>
        <t>If the above mechanisms fail to provide a working configuration, or if the
user explicitly chooses so, the mail client <bcp14>SHOULD</bcp14> give the end user the ability to
manually enter a configuration, and use that configuration to configure the
account.</t>
      </section>
    </section>
    <section anchor="configuration-validation">
      <name>Configuration validation</name>
      <section anchor="user-approval">
        <name>User approval</name>
        <t>Independent of the mechanisms used to find the configuration, before using
that configuration, the mail client <bcp14>SHOULD</bcp14> display that configuration to the end user and
let him confirm it. While doing so:</t>
        <ul spacing="normal">
          <li>
            <t>At least the second-level domain name(s) of the hostnames involved <bcp14>MUST</bcp14> be
shown clearly and with high prominence.</t>
          </li>
          <li>
            <t>To avoid spoofing, the client <bcp14>MUST NOT</bcp14> cut off parts of long
second-level domains. At least 63 characters <bcp14>MUST</bcp14> be displayed.</t>
          </li>
          <li>
            <t>Care <bcp14>SHOULD</bcp14> be taken with international characters that look like ASCII
characters, but have a different code.</t>
          </li>
        </ul>
      </section>
      <section anchor="login-test">
        <name>Login test</name>
        <t>After the user confirmed the configuration, the mail client <bcp14>SHOULD</bcp14> test the configuration,
by attempting a login to each server configured. Only if the login succeeded,
and the server is working, should the configuration be saved and retrieving
and sending mail be started.</t>
      </section>
      <section anchor="oauth2-windows">
        <name>OAuth2 windows</name>
        <t>If the configuration contains OAuth2 authentication, or any other kind of
authentication that uses a web browser with URL redirects,
the mail client <bcp14>MUST</bcp14> show the full URL or the second-level domain of the current page
to the end user, at all times, including after page changes, URL changes,
or redirects. The authentication start URL may be the email hoster, but
it redirects to a corporate server for login, and then back to the hoster.
This allows for setups where the hoster is not allowed to see the
plaintext passwords.</t>
        <t>Showing the URL or hostname allows the end user to verify that he is
logging in at the expected page, e.g. the login server of their company,
instead of the email hoster's page. It is important that the user verifies
that he enters the passwords on the right domain.</t>
      </section>
    </section>
    <section anchor="configuration-publishing-by-mail-providers">
      <name>Configuration publishing by mail providers</name>
      <t>Mail service providers who want to support this specification
and publish the mail configuration for their own mail service,
so that mail client apps can be automatically configured,
<bcp14>MUST</bcp14> follow this section as guideline and <bcp14>MUST</bcp14> respect the
definitions in this specification.</t>
      <ul spacing="normal">
        <li>
          <t>Configuration fields <bcp14>MUST NOT</bcp14> contain invalid or non-working
configuration data.</t>
        </li>
        <li>
          <t>The provided configuration <bcp14>MUST</bcp14> be working,
and <bcp14>SHOULD</bcp14> use state-of-the-art security.</t>
        </li>
        <li>
          <t>Configurations <bcp14>MUST</bcp14> be public and <bcp14>MUST NOT</bcp14> require
authentication (see below).</t>
        </li>
      </ul>
      <section anchor="configuration-location-for-single-domain">
        <name>Configuration location for single domain</name>
        <t>The configuration file <bcp14>SHOULD</bcp14> be published at the URL for
step 1.1., i.e.</t>
        <ul spacing="normal">
          <li>
            <t><tt>https://autoconfig.%EMAILDOMAIN%/mail/config-v1.1.xml</tt></t>
          </li>
        </ul>
        <t>e.g. for <tt>fred@example.com</tt></t>
        <ul spacing="normal">
          <li>
            <t><tt>https://autoconfig.example.com/mail/config-v1.1.xml</tt></t>
          </li>
        </ul>
      </section>
      <section anchor="configuration-location-for-domain-hosters">
        <name>Configuration location for domain hosters</name>
        <t>For mail providers which host entire domains for their business
customers, the same URL as listed in the previous section is
preferred.</t>
        <t>Alternatively, the configuration file <bcp14>SHOULD</bcp14> be published at
the locations for step 3.1. and 3.2., i.e.</t>
        <ul spacing="normal">
          <li>
            <t><tt>https://autoconfig.%MXFULLDOMAIN%/mail/config-v1.1.xml</tt></t>
          </li>
          <li>
            <t><tt>https://autoconfig.%MXBASEDOMAIN%/mail/config-v1.1.xml</tt></t>
          </li>
        </ul>
        <t>For example, if the MX server for customer domain example.net is
<tt>mx.premium.europe.example.com</tt>, then the configuration file should be at both</t>
        <ul spacing="normal">
          <li>
            <t><tt>https://autoconfig.premium.europe.example.com/mail/config-v1.1.xml</tt></t>
          </li>
          <li>
            <t><tt>https://autoconfig.example.com/mail/config-v1.1.xml</tt></t>
          </li>
        </ul>
      </section>
      <section anchor="no-authentication-for-config">
        <name>No authentication for config</name>
        <t>Any of the above URLs for retrieving the configuration file <bcp14>MUST NOT</bcp14>
require authentication, but <bcp14>MUST</bcp14> be public.</t>
        <t>This is because the configuration information in the Autoconfig file
includes the authentication method. Without the Autoconfig file,
the client does not know which authentication method is required and
which username form to use
(e.g. username <tt>fred</tt> or <tt>fred@example.com</tt> or <tt>fred\EXAMPLE</tt>).
Given that this information is required for authentication,
the Autoconfig file itself cannot require authentication.</t>
      </section>
      <section anchor="oauth2">
        <name>OAuth2 requirements</name>
        <t>If OAuth2 is used, the OAuth2 server <bcp14>MUST</bcp14> adhere either to the <xref target="OAuth2Client"/> specification, including all <bcp14>SHOULD</bcp14> requirements stated in those.</t>
        <t>The provider <bcp14>MUST</bcp14> allow any client application that acts on behalf of the end
user who the mailbox is for.
Failure to do so implies a cartell or monopolistic behavior to lock out
competing email applications from fulfilling their purpose on behalf of
end users, which may be contrary to laws in multiple countries.</t>
        <t>The OAuth2 server <bcp14>MUST</bcp14></t>
        <ul spacing="normal">
          <li>
            <t>accept the client ID that is given in the configuration file, or if that is not given,</t>
          </li>
          <li>
            <t>implement Dynamic Client Registration <xref target="RFC7591"/> in the way
as defined by <xref target="OAuth2Client"/> and accept the resulting Client ID,</t>
          </li>
        </ul>
        <t>without client secret. It <bcp14>MAY</bcp14> support multiple of those methods.</t>
        <t>The server <bcp14>MUST NOT</bcp14> employ any methods at any point to block or hinder
clients applications that are acting on behalf of end users.</t>
        <t>The specifications above contain requirements for expiry times and
the login page, which are needed for mail client applications to work,
and <bcp14>MUST</bcp14> be followed.</t>
        <t>The OAuth2 scope <bcp14>MUST</bcp14> include all services defined in this configuration file,
so that a single user login is sufficient for all services.
The resulting refresh and access tokens <bcp14>MUST</bcp14> be valid for all services defined
in the configuration file, including for all URL-based protocols like CalDAV
and all TCP-based protocols like IMAP.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="risk">
        <name>Risk</name>
        <t>If an attacker can provide a forged configuration, the provided mail hostname
and authentication server can be controlled by the attacker, and the attacker
can get access to the plain text password of the user. The attack can be
implemented as man-in-the-middle, so the end user might receive mail as
expected and never notice the attack.</t>
        <t>An attacker gaining the plain text password of a real user is a very
significant threat for the organization, not only because mail itself can
contain sensitive information and can be used to issue orders within the
organization that have wide-ranging impact, but given single-sign-on
solutions, the same username and password may give access to other resources
at the organization, including other computers or, in the case of admin users,
even adminstrative access to the core of the entire organization.</t>
        <t>Multi-factor authentication might not defend against such attacks, because the
user may believe to be logging into his email and therefore comply with any
multi-factor authentication steps required.</t>
      </section>
      <section anchor="dns">
        <name>DNS</name>
        <t>Any protocol that relies on DNS without further validation, e.g. http, should
be considered insecure.
This also applies to the DNS MX lookup and the https calls that base on its
results, as described in <xref target="mx"/> <em>MX</em>.</t>
        <t>One possible mitigation is to use multiple different DNS servers and verify
that the results match, e.g. to use the native DNS resolver of the operating
system, and additionally also query a hardcoded DoH (DNS over HTTPS) server.</t>
        <t>Nonetheless, the result should be used with care. If such configs are used,
the end user <bcp14>MUST</bcp14> explicitly confirm the config, particularly the resulting
second-level domains. See <xref target="user-approval"/> <em>User approval</em>.</t>
      </section>
      <section anchor="http">
        <name>HTTP</name>
        <t>HTTP requests may be intercepted, redirected, or altered at the network level.
See <xref target="risk"/> <em>Risk</em> above.</t>
        <t>Even if an http URL redirects to a https URL, and the domain of the https URL
cannot be validated against the email domain, that is still insecure.</t>
        <t>For that reason, clients <bcp14>MUST</bcp14> prefer HTTPS over HTTP during configuration retrieval,
within the same retrieval method.</t>
        <t>If such configs from HTTP are used, the end user <bcp14>MUST</bcp14> explicitly confirm the
config, particularly the resulting second-level domains. See <xref target="user-approval"/> <em>User approval</em>.</t>
      </section>
      <section anchor="configuration-updates">
        <name>Configuration updates</name>
        <t>Part of the security properties of this protocol assume that the timeframe of
possible attack is limited to the moment when the user manually sets up a new
mail client. This moment is triggered by the end user, and a rare action -
e.g. maybe once per year or even less, for typical setups -, so an attacker
has limited chances to run an attack. While not a complete protection on its
own, this reduces the risk significantly.</t>
        <t>However, if the mail client does regular configuration updates using this
protocol, this security property is no longer given. For regular configuration
updates, the mail client <bcp14>MUST</bcp14> use only mechanisms that are secure and cannot
be tampered with by an active attacker. Furthermore, the user <bcp14>SHOULD</bcp14> still
approve configuration changes.</t>
        <t>But even with all these protections implemented, the mail client vendor should
make a security assessment for the risks of making such regular updates. The
mail client vendor should consider that servers can be hacked, and most users
simply approve changes proposed by the app, so these give only a limited
protection.</t>
      </section>
      <section anchor="server-security">
        <name>Server security</name>
        <t>Given that mail clients will trust the configuration, the server delivering
the configuration file needs to be secure. A static web server offers better
security. The server software <bcp14>SHOULD</bcp14> be updated regularly and hosted on a
dedicated secure server with all unnecessary services and server features
turned off.</t>
        <t>For the ISPDB, additions and modifications to the configurations are
applicable to all respective users and must be made with care. The
authenticity of the configuration <bcp14>MUST</bcp14> be verified from authorative sources.
Server hostnames <bcp14>MUST</bcp14> be compared with the email domain names they are
serving, and if they differ, the ownership of the server hostnames <bcp14>MUST</bcp14> be
validated.</t>
        <t>The risk is mitigated to some degree by <xref target="user-approval"/> <em>User approval</em>.</t>
      </section>
    </section>
    <section anchor="alternatives-considered">
      <name>Alternatives considered</name>
      <section anchor="dnssec">
        <name>DNSSEC</name>
        <t>Due to their top-level domain, some domains do not have <xref target="DNSSEC"/>
available to them, even if they would like to deploy it.</t>
        <t>Even where the top-level domain supports it, DNSSEC is currently deployed in
only 1% of domains, with adoption rates falling instead of rising, due to the
difficulties of administrating it correctly.</t>
        <t>Therefore, DNSSEC cannot be relied on in this specification, and DNS must be
considered insecure for the purposes of this specification.</t>
      </section>
      <section anchor="dns-srv">
        <name>DNS SRV</name>
        <t>DNS SRV protocols <xref target="DNS-SRV"/> <xref target="RFC6186"/> are not used here, for 2 reasons:</t>
        <ol spacing="normal" type="1"><li>
            <t>DNS SRV relies on insecure DNS and the configuration can therefore be trivially
spoofed by an attacker. See also DNSSEC above.</t>
          </li>
          <li>
            <t>DNS SRV does not provide all the necessary configuration parameters. For
example, we need all of:</t>
          </li>
        </ol>
        <ul spacing="normal">
          <li>
            <t>the username form (<tt>fred@example.com</tt>, or <tt>fred</tt>, or <tt>fred\EXAMPLE</tt>, or even
a username with no relation to the email address)</t>
          </li>
          <li>
            <t>authentication method (password, CRAM-MD5, OAuth2, SSL client certificate)</t>
          </li>
          <li>
            <t>authentication method parameters (e.g. OAuth parameters)</t>
          </li>
        </ul>
        <t>and other parameters. If any of these parameters are not configured right, the
configuration won't work. While these parameters could theoretically be added
to DNS SRV, that would mean a new specification and render the idea void that
this is a protocol that already exists, is standardized and deployed. It is
unlikely that all DNS SRV records would be updated with the new values.
Therefore, it does not solve the problem.</t>
        <t>This specification was created as an answer to these deficiencies and provides
an alternative to DNS SRV.</t>
      </section>
      <section anchor="capabilities">
        <name>CAPABILITIES</name>
        <t>Deployments in the wild from actual ISPs show that protocol-specific commands
to find available authentication methods, e.g. IMAP <tt>CAPABILITIES</tt> or POP3
<tt>CAPA</tt>, are not reliable. Many email servers advertize authentication methods
that do not work.</t>
        <t>Some IMAP servers are default configured to list all SASL authentication
methods that have corresponding libraries installed on the system, independent
on whether they are actually configured to work. The client receives a long
list of authentication methods, and many of them do not work. Additionally,
the server response may be only "authentication failed" and may not indicate
whether the method failed due to lack of configuration, or because the
password was wrong. Because some authentication servers lock the account after
3 failed login attempts, and it may also fail due to unrelated reasons (e.g.
username form, wrong password, etc.), the client cannot blindly issue
countless login attempts. Locking the account must be avoided. So, simply
attempting all methods and seeing which one works is not an option for the
email client.</t>
        <t>Additionally, some email servers advertize <xref target="Kerberos"/> /
<xref target="GSSAPI"/>, but when trying
to use it, the method fails, and also runs into a long 2 minute timeout in
some cases. End users consider that to be a broken app.</t>
        <t>Additionally, such commands are protocol specific and have to be implemented
in multiple different ways.</t>
        <t>Finally, some non-mail protocols may not support capabilties commands that
include authentication methods.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="registration">
        <name>Registration</name>
        <t>IANA will create the following registry in a new registry group called
"Mail Autoconfig":</t>
        <t>Registry Name: "Autoconfig Protocol Type Names"</t>
        <t>Registration Procedure: Specification Required, per <xref section="4" sectionFormat="comma" target="RFC8126"/></t>
        <t>Designated Expert: The author of this document.</t>
      </section>
      <section anchor="contents">
        <name>Contents</name>
        <t>Table, with fields Element (alphanumeric), Type (alphanumeric), Base (URL or TCP or URL/TCP), Name, Specification, and Additional Elements</t>
        <t>The registrations need to define:</t>
        <ul spacing="normal">
          <li>
            <t>Element: The XML element wrapping the server section.</t>
          </li>
          <li>
            <t>Type: The <tt>type</tt> attribute value of the server section.</t>
          </li>
          <li>
            <t>Base: Whether the protocol is URL-based or TCP-based,</t>
          </li>
          <li>
            <t>Name: The commonly used name of the protocol</t>
          </li>
          <li>
            <t>Specification: Which RFCs or document specifies the protocol, and</t>
          </li>
          <li>
            <t>Additional Elements: (Optional) Protocol-specific XML elements and
their meaning.</t>
          </li>
        </ul>
      </section>
      <section anchor="initial-registration">
        <name>Initial registration</name>
        <table>
          <thead>
            <tr>
              <th align="left">Element</th>
              <th align="left">Type</th>
              <th align="left">Base</th>
              <th align="left">Name</th>
              <th align="left">Specification</th>
              <th align="left">Additional Elements</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>jmap</tt></td>
              <td align="left">URL</td>
              <td align="left">JMAP</td>
              <td align="left">RFC 8620, RFC 8621, RFC 8887, RFC 9610 et al</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>imap</tt></td>
              <td align="left">TCP</td>
              <td align="left">IMAP</td>
              <td align="left">RFC 9051 or RFC 3501, et al</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>pop3</tt></td>
              <td align="left">TCP</td>
              <td align="left">POP3</td>
              <td align="left">RFC 1939, RFC 5034</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">outgoingServer</td>
              <td align="left">
                <tt>smtp</tt></td>
              <td align="left">TCP</td>
              <td align="left">SMTP</td>
              <td align="left">RFC 5321, RFC 2822</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">calendar</td>
              <td align="left">
                <tt>caldav</tt></td>
              <td align="left">URL</td>
              <td align="left">CalDAV</td>
              <td align="left">RFC 4791</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">addressbook</td>
              <td align="left">
                <tt>carddav</tt></td>
              <td align="left">URL</td>
              <td align="left">CardDav</td>
              <td align="left">RFC 6352</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">fileShare</td>
              <td align="left">
                <tt>webdav</tt></td>
              <td align="left">URL</td>
              <td align="left">WebDAV</td>
              <td align="left">RFC 4918</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">chatServer</td>
              <td align="left">
                <tt>xmpp</tt></td>
              <td align="left">URL</td>
              <td align="left">XMPP</td>
              <td align="left">RFC 6120, RFC 6121, RFC 7395</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">chatServer</td>
              <td align="left">
                <tt>xmpptcp</tt></td>
              <td align="left">TCP</td>
              <td align="left">XMPP</td>
              <td align="left">RFC 6120, RFC 6121</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">chatServer</td>
              <td align="left">
                <tt>matrix</tt></td>
              <td align="left">URL</td>
              <td align="left">Matrix</td>
              <td align="left">
                <eref target="https://spec.matrix.org">https://spec.matrix.org</eref></td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">setupServer</td>
              <td align="left">
                <tt>managesieve</tt></td>
              <td align="left">TCP</td>
              <td align="left">ManageSieve</td>
              <td align="left">RFC 5804, RFC 5228</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>ews</tt></td>
              <td align="left">URL</td>
              <td align="left">Exchange Web Services</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>activeSync</tt></td>
              <td align="left">URL</td>
              <td align="left">ActiveSync</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">incomingServer</td>
              <td align="left">
                <tt>graph</tt></td>
              <td align="left">URL</td>
              <td align="left">Microsoft Graph</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>The Additional Elements field is empty in all of the initial values.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="OAuth2Client" target="https://datatracker.ietf.org/doc/draft-ietf-mailmaint-oauth-public/">
          <front>
            <title>OAuth Profile for Open Public Clients</title>
            <author initials="N." surname="Jenkis" fullname="Neil Jenkins">
              <organization>Fastmail</organization>
            </author>
            <author initials="B." surname="Bucksch" fullname="Ben Bucksch">
              <organization>Beonex</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="Matrix" target="https://spec.matrix.org">
          <front>
            <title>Matrix protocol specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </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>
        <reference anchor="JMAP-Core">
          <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>
        <reference anchor="JMAP-Mail">
          <front>
            <title>The JSON Meta Application Protocol (JMAP) for Mail</title>
            <author fullname="N. Jenkins" initials="N." surname="Jenkins"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>This document specifies a data model for synchronising email data with a server using the JSON Meta Application Protocol (JMAP). Clients can use this to efficiently search, access, organise, and send messages, and to get push notifications for fast resynchronisation when new messages are delivered or a change is made in another client.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8621"/>
          <seriesInfo name="DOI" value="10.17487/RFC8621"/>
        </reference>
        <reference anchor="JMAP-WebSocket">
          <front>
            <title>A JSON Meta Application Protocol (JMAP) Subprotocol for WebSocket</title>
            <author fullname="K. Murchison" initials="K." surname="Murchison"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document defines a binding for the JSON Meta Application Protocol (JMAP) over a WebSocket transport layer. The WebSocket binding for JMAP provides higher performance than the current HTTP binding for JMAP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8887"/>
          <seriesInfo name="DOI" value="10.17487/RFC8887"/>
        </reference>
        <reference anchor="JMAP-Contacts">
          <front>
            <title>JSON Meta Application Protocol (JMAP) for Contacts</title>
            <author fullname="N. Jenkins" initials="N." role="editor" surname="Jenkins"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>This document specifies a data model for synchronising contact data with a server using the JSON Meta Application Protocol (JMAP).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9610"/>
          <seriesInfo name="DOI" value="10.17487/RFC9610"/>
        </reference>
        <reference anchor="IMAP4rev2">
          <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>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>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>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>
        <reference anchor="IMAP4rev1">
          <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="POP3">
          <front>
            <title>Post Office Protocol - Version 3</title>
            <author fullname="J. Myers" initials="J." surname="Myers"/>
            <author fullname="M. Rose" initials="M." surname="Rose"/>
            <date month="May" year="1996"/>
            <abstract>
              <t>The Post Office Protocol - Version 3 (POP3) is intended to permit a workstation to dynamically access a maildrop on a server host in a useful fashion. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="53"/>
          <seriesInfo name="RFC" value="1939"/>
          <seriesInfo name="DOI" value="10.17487/RFC1939"/>
        </reference>
        <reference anchor="POP3-SASL">
          <front>
            <title>The Post Office Protocol (POP3) Simple Authentication and Security Layer (SASL) Authentication Mechanism</title>
            <author fullname="R. Siemborski" initials="R." surname="Siemborski"/>
            <author fullname="A. Menon-Sen" initials="A." surname="Menon-Sen"/>
            <date month="July" year="2007"/>
            <abstract>
              <t>This document defines a profile of the Simple Authentication and Security Layer (SASL) for the Post Office Protocol (POP3). This extension allows a POP3 client to indicate an authentication mechanism to the server, perform an authentication protocol exchange, and optionally negotiate a security layer for subsequent protocol interactions during this session.</t>
              <t>This document seeks to consolidate the information related to POP3 AUTH into a single document. To this end, this document obsoletes and replaces RFC 1734, and updates the information contained in Section 6.3 of RFC 2449. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5034"/>
          <seriesInfo name="DOI" value="10.17487/RFC5034"/>
        </reference>
        <reference anchor="SMTP">
          <front>
            <title>Simple Mail Transfer Protocol</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document is a specification of the basic protocol for Internet electronic mail transport. It consolidates, updates, and clarifies several previous documents, making all or parts of most of them obsolete. It covers the SMTP extension mechanisms and best practices for the contemporary Internet, but does not provide details about particular extensions. Although SMTP was designed as a mail transport and delivery protocol, this specification also contains information that is important to its use as a "mail submission" protocol for "split-UA" (User Agent) mail reading systems and mobile environments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5321"/>
          <seriesInfo name="DOI" value="10.17487/RFC5321"/>
        </reference>
        <reference anchor="EMail">
          <front>
            <title>Internet Message Format</title>
            <author fullname="P. Resnick" initials="P." role="editor" surname="Resnick"/>
            <date month="April" year="2001"/>
            <abstract>
              <t>This document specifies a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2822"/>
          <seriesInfo name="DOI" value="10.17487/RFC2822"/>
        </reference>
        <reference anchor="CalDAV">
          <front>
            <title>Calendaring Extensions to WebDAV (CalDAV)</title>
            <author fullname="C. Daboo" initials="C." surname="Daboo"/>
            <author fullname="B. Desruisseaux" initials="B." surname="Desruisseaux"/>
            <author fullname="L. Dusseault" initials="L." surname="Dusseault"/>
            <date month="March" year="2007"/>
            <abstract>
              <t>This document defines extensions to the Web Distributed Authoring and Versioning (WebDAV) protocol to specify a standard way of accessing, managing, and sharing calendaring and scheduling information based on the iCalendar format. This document defines the "calendar-access" feature of CalDAV. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4791"/>
          <seriesInfo name="DOI" value="10.17487/RFC4791"/>
        </reference>
        <reference anchor="CardDav">
          <front>
            <title>CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)</title>
            <author fullname="C. Daboo" initials="C." surname="Daboo"/>
            <date month="August" year="2011"/>
            <abstract>
              <t>This document defines extensions to the Web Distributed Authoring and Versioning (WebDAV) protocol to specify a standard way of accessing, managing, and sharing contact information based on the vCard format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6352"/>
          <seriesInfo name="DOI" value="10.17487/RFC6352"/>
        </reference>
        <reference anchor="WebDAV">
          <front>
            <title>HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)</title>
            <author fullname="L. Dusseault" initials="L." role="editor" surname="Dusseault"/>
            <date month="June" year="2007"/>
            <abstract>
              <t>Web Distributed Authoring and Versioning (WebDAV) consists of a set of methods, headers, and content-types ancillary to HTTP/1.1 for the management of resource properties, creation and management of resource collections, URL namespace manipulation, and resource locking (collision avoidance).</t>
              <t>RFC 2518 was published in February 1999, and this specification obsoletes RFC 2518 with minor revisions mostly due to interoperability experience. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4918"/>
          <seriesInfo name="DOI" value="10.17487/RFC4918"/>
        </reference>
        <reference anchor="XMPP">
          <front>
            <title>Extensible Messaging and Presence Protocol (XMPP): Core</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>The Extensible Messaging and Presence Protocol (XMPP) is an application profile of the Extensible Markup Language (XML) that enables the near-real-time exchange of structured yet extensible data between any two or more network entities. This document defines XMPP's core protocol methods: setup and teardown of XML streams, channel encryption, authentication, error handling, and communication primitives for messaging, network availability ("presence"), and request-response interactions. This document obsoletes RFC 3920. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6120"/>
          <seriesInfo name="DOI" value="10.17487/RFC6120"/>
        </reference>
        <reference anchor="XMPP-IM">
          <front>
            <title>Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>This document defines extensions to core features of the Extensible Messaging and Presence Protocol (XMPP) that provide basic instant messaging (IM) and presence functionality in conformance with the requirements in RFC 2779. This document obsoletes RFC 3921. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6121"/>
          <seriesInfo name="DOI" value="10.17487/RFC6121"/>
        </reference>
        <reference anchor="XMPP-WebSocket">
          <front>
            <title>An Extensible Messaging and Presence Protocol (XMPP) Subprotocol for WebSocket</title>
            <author fullname="L. Stout" initials="L." role="editor" surname="Stout"/>
            <author fullname="J. Moffitt" initials="J." surname="Moffitt"/>
            <author fullname="E. Cestari" initials="E." surname="Cestari"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This document defines a binding for the Extensible Messaging and Presence Protocol (XMPP) over a WebSocket transport layer. A WebSocket binding for XMPP provides higher performance than the current HTTP binding for XMPP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7395"/>
          <seriesInfo name="DOI" value="10.17487/RFC7395"/>
        </reference>
        <reference anchor="ManageSieve">
          <front>
            <title>A Protocol for Remotely Managing Sieve Scripts</title>
            <author fullname="A. Melnikov" initials="A." role="editor" surname="Melnikov"/>
            <author fullname="T. Martin" initials="T." surname="Martin"/>
            <date month="July" year="2010"/>
            <abstract>
              <t>Sieve scripts allow users to filter incoming email. Message stores are commonly sealed servers so users cannot log into them, yet users must be able to update their scripts on them. This document describes a protocol "ManageSieve" for securely managing Sieve scripts on a remote server. This protocol allows a user to have multiple scripts, and also alerts a user to syntactically flawed scripts. [STANDARDS TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5804"/>
          <seriesInfo name="DOI" value="10.17487/RFC5804"/>
        </reference>
        <reference anchor="Sieve">
          <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="URL">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="HTTP">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="WebSocket">
          <front>
            <title>The WebSocket Protocol</title>
            <author fullname="I. Fette" initials="I." surname="Fette"/>
            <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The security model used for this is the origin-based security model commonly used by web browsers. The protocol consists of an opening handshake followed by basic message framing, layered over TCP. The goal of this technology is to provide a mechanism for browser-based applications that need two-way communication with servers that does not rely on opening multiple HTTP connections (e.g., using XMLHttpRequest or s and long polling). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6455"/>
          <seriesInfo name="DOI" value="10.17487/RFC6455"/>
        </reference>
        <reference anchor="HTTP-Basic-Auth">
          <front>
            <title>The 'Basic' HTTP Authentication Scheme</title>
            <author fullname="J. Reschke" initials="J." surname="Reschke"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This document defines the "Basic" Hypertext Transfer Protocol (HTTP) authentication scheme, which transmits credentials as user-id/ password pairs, encoded using Base64.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7617"/>
          <seriesInfo name="DOI" value="10.17487/RFC7617"/>
        </reference>
        <reference anchor="HTTP-Digest-Auth">
          <front>
            <title>HTTP Digest Access Authentication</title>
            <author fullname="R. Shekh-Yusef" initials="R." role="editor" surname="Shekh-Yusef"/>
            <author fullname="D. Ahrens" initials="D." surname="Ahrens"/>
            <author fullname="S. Bremer" initials="S." surname="Bremer"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) provides a simple challenge- response authentication mechanism that may be used by a server to challenge a client request and by a client to provide authentication information. This document defines the HTTP Digest Authentication scheme that can be used with the HTTP authentication mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7616"/>
          <seriesInfo name="DOI" value="10.17487/RFC7616"/>
        </reference>
        <reference anchor="OAuth2">
          <front>
            <title>The OAuth 2.0 Authorization Framework: Bearer Token Usage</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This specification describes how to use bearer tokens in HTTP requests to access OAuth 2.0 protected resources. Any party in possession of a bearer token (a "bearer") can use it to get access to the associated resources (without demonstrating possession of a cryptographic key). To prevent misuse, bearer tokens need to be protected from disclosure in storage and in transport. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6750"/>
          <seriesInfo name="DOI" value="10.17487/RFC6750"/>
        </reference>
        <reference anchor="TLSv1.2">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
            <author fullname="T. Dierks" initials="T." surname="Dierks"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5246"/>
          <seriesInfo name="DOI" value="10.17487/RFC5246"/>
        </reference>
        <reference anchor="STARTTLS">
          <front>
            <title>Using TLS with IMAP, POP3 and ACAP</title>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="June" year="1999"/>
            <abstract>
              <t>Recognizing that such sites will desire simple password authentication in combination with TLS encryption, this specification defines the PLAIN SASL mechanism for use with protocols which lack a simple password authentication command such as ACAP and SMTP. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2595"/>
          <seriesInfo name="DOI" value="10.17487/RFC2595"/>
        </reference>
        <reference anchor="CRAM-MD5">
          <front>
            <title>IMAP/POP AUTHorize Extension for Simple Challenge/Response</title>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="R. Catoe" initials="R." surname="Catoe"/>
            <author fullname="P. Krumviede" initials="P." surname="Krumviede"/>
            <date month="September" year="1997"/>
            <abstract>
              <t>This specification provides a simple challenge-response authentication protocol that is suitable for use with IMAP4. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2195"/>
          <seriesInfo name="DOI" value="10.17487/RFC2195"/>
        </reference>
        <reference anchor="DIGEST-MD5">
          <front>
            <title>Using Digest Authentication as a SASL Mechanism</title>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="May" year="2000"/>
            <abstract>
              <t>This specification defines how HTTP Digest Authentication can be used as a SASL mechanism for any protocol that has a SASL (Simple Authentication and Security Layer) profile. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2831"/>
          <seriesInfo name="DOI" value="10.17487/RFC2831"/>
        </reference>
        <reference anchor="SCRAM">
          <front>
            <title>SCRAM-SHA-256 and SCRAM-SHA-256-PLUS Simple Authentication and Security Layer (SASL) Mechanisms</title>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="November" year="2015"/>
            <abstract>
              <t>This document registers the Simple Authentication and Security Layer (SASL) mechanisms SCRAM-SHA-256 and SCRAM-SHA-256-PLUS, provides guidance for secure implementation of the original SCRAM-SHA-1-PLUS mechanism, and updates the SCRAM registration procedures of RFC 5802.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7677"/>
          <seriesInfo name="DOI" value="10.17487/RFC7677"/>
        </reference>
        <reference anchor="SASL">
          <front>
            <title>Simple Authentication and Security Layer (SASL)</title>
            <author fullname="A. Melnikov" initials="A." role="editor" surname="Melnikov"/>
            <author fullname="K. Zeilenga" initials="K." role="editor" surname="Zeilenga"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>The Simple Authentication and Security Layer (SASL) is a framework for providing authentication and data security services in connection-oriented protocols via replaceable mechanisms. It provides a structured interface between protocols and mechanisms. The resulting framework allows new protocols to reuse existing mechanisms and allows old protocols to make use of new mechanisms. The framework also provides a protocol for securing subsequent protocol exchanges within a data security layer.</t>
              <t>This document describes how a SASL mechanism is structured, describes how protocols include support for SASL, and defines the protocol for carrying a data security layer over a connection. In addition, this document defines one SASL mechanism, the EXTERNAL mechanism.</t>
              <t>This document obsoletes RFC 2222. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4422"/>
          <seriesInfo name="DOI" value="10.17487/RFC4422"/>
        </reference>
        <reference anchor="SASL-OAuth2">
          <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>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>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>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="RFC7591">
          <front>
            <title>OAuth 2.0 Dynamic Client Registration Protocol</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Machulak" initials="M." surname="Machulak"/>
            <author fullname="P. Hunt" initials="P." surname="Hunt"/>
            <date month="July" year="2015"/>
            <abstract>
              <t>This specification defines mechanisms for dynamically registering OAuth 2.0 clients with authorization servers. Registration requests send a set of desired client metadata values to the authorization server. The resulting registration responses return a client identifier to use at the authorization server and the client metadata values registered for the client. The client can then use this registration information to communicate with the authorization server using the OAuth 2.0 protocol. This specification also defines a set of common client metadata fields and values for clients to use during registration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7591"/>
          <seriesInfo name="DOI" value="10.17487/RFC7591"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="Autoconfig1.1" target="https://www.bucksch.org/1/projects/autoconfiguration/config-file-format.html">
          <front>
            <title>Autoconfig version 1.1</title>
            <author initials="B." surname="Bucksch" fullname="Ben Bucksch">
              <organization>Beonex</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="XML">
          <front>
            <title>Guidelines for the Use of Extensible Markup Language (XML) within IETF Protocols</title>
            <author fullname="S. Hollenbeck" initials="S." surname="Hollenbeck"/>
            <author fullname="M. Rose" initials="M." surname="Rose"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2003"/>
            <abstract>
              <t>The Extensible Markup Language (XML) is a framework for structuring data. While it evolved from Standard Generalized Markup Language (SGML) -- a markup language primarily focused on structuring documents -- XML has evolved to be a widely-used mechanism for representing structured data. There are a wide variety of Internet protocols being developed; many have need for a representation for structured data relevant to their application. There has been much interest in the use of XML as a representation method. This document describes basic XML concepts, analyzes various alternatives in the use of XML, and provides guidelines for the use of XML within IETF standards-track protocols. 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="70"/>
          <seriesInfo name="RFC" value="3470"/>
          <seriesInfo name="DOI" value="10.17487/RFC3470"/>
        </reference>
        <reference anchor="Kerberos">
          <front>
            <title>The Kerberos Network Authentication Service (V5)</title>
            <author fullname="C. Neuman" initials="C." surname="Neuman"/>
            <author fullname="T. Yu" initials="T." surname="Yu"/>
            <author fullname="S. Hartman" initials="S." surname="Hartman"/>
            <author fullname="K. Raeburn" initials="K." surname="Raeburn"/>
            <date month="July" year="2005"/>
            <abstract>
              <t>This document provides an overview and specification of Version 5 of the Kerberos protocol, and it obsoletes RFC 1510 to clarify aspects of the protocol and its intended use that require more detailed or clearer explanation than was provided in RFC 1510. This document is intended to provide a detailed description of the protocol, suitable for implementation, together with descriptions of the appropriate use of protocol messages and fields within those messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4120"/>
          <seriesInfo name="DOI" value="10.17487/RFC4120"/>
        </reference>
        <reference anchor="GSSAPI">
          <front>
            <title>Generic Security Service Application Program Interface Version 2, Update 1</title>
            <author fullname="J. Linn" initials="J." surname="Linn"/>
            <date month="January" year="2000"/>
            <abstract>
              <t>This memo obsoletes [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2743"/>
          <seriesInfo name="DOI" value="10.17487/RFC2743"/>
        </reference>
        <reference anchor="RFC6186">
          <front>
            <title>Use of SRV Records for Locating Email Submission/Access Services</title>
            <author fullname="C. Daboo" initials="C." surname="Daboo"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>This specification describes how SRV records can be used to locate email services. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6186"/>
          <seriesInfo name="DOI" value="10.17487/RFC6186"/>
        </reference>
        <reference anchor="DNSSEC">
          <front>
            <title>DNS Security Extensions (DNSSEC)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>This document describes the DNS Security Extensions (commonly called "DNSSEC") that are specified in RFCs 4033, 4034, and 4035, as well as a handful of others. One purpose is to introduce all of the RFCs in one place so that the reader can understand the many aspects of DNSSEC. This document does not update any of those RFCs. A second purpose is to state that using DNSSEC for origin authentication of DNS data is the best current practice. A third purpose is to provide a single reference for other documents that want to refer to DNSSEC.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="237"/>
          <seriesInfo name="RFC" value="9364"/>
          <seriesInfo name="DOI" value="10.17487/RFC9364"/>
        </reference>
        <reference anchor="DNS-SRV">
          <front>
            <title>A DNS RR for specifying the location of services (DNS SRV)</title>
            <author fullname="A. Gulbrandsen" initials="A." surname="Gulbrandsen"/>
            <author fullname="P. Vixie" initials="P." surname="Vixie"/>
            <author fullname="L. Esibov" initials="L." surname="Esibov"/>
            <date month="February" year="2000"/>
            <abstract>
              <t>This document describes a DNS RR which specifies the location of the server(s) for a specific protocol and domain. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2782"/>
          <seriesInfo name="DOI" value="10.17487/RFC2782"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
