<?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.24 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mailmaint-autoconfig-03" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="autoconfig">Mail Autoconfig</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mailmaint-autoconfig-03"/>
    <author fullname="Ben Bucksch">
      <organization>Beonex</organization>
      <address>
        <email>ben.bucksch@beonex.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="21"/>
    <area>art</area>
    <workgroup>mailmaint</workgroup>
    <keyword>config</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 59?>

<t>Set up a mail account with only email address and password.</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 63?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This protocol allows users to set up their existing email account in a new
mail client application, by entering only their name, email address, and
password. The mail application, by means of mail autoconfig 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. Contact sync and calendar, file sharing
and other services can also be set up automatically.</t>
      <t>The protocol works by first determining the domain from the email address, and
the 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 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 need to be hosted by the same provider
as the email address.</t>
    </section>
    <section anchor="implementations">
      <name>Implementations</name>
      <t>This protocol is in production use since 15 years by major email clients, and
the config database (used as fallback) contains configurations for over 50% of
all email accounts.</t>
      <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>The purpose of this paper is to document and specify what is deployed in the
wild.</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 <xref target="XML"/>. The MIME type is <tt>text/xml</tt>.</t>
      <section anchor="xml-config-file">
        <name>XML config file</name>
        <t>The following example shows the syntax of the XML config 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
        config are valid. Clients will pick the first
        one that they support.
        -->
      <authentication>password-cleartext</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>

    <!-- You can have multiple incoming servers,
      and even multiple IMAP server configs.
      The first config 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 config 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. Higher versions are for future specifications.
The client <bcp14>MUST NOT</bcp14> reject a config file solely based on the version number.</t>
        </section>
        <section anchor="emailprovider">
          <name>emailProvider</name>
          <t>Element <tt>&lt;emailProvider id="example.com"&gt;</tt> is within the root element.
This element has no semantic purpose and exists for legacy reasons only.
If all of its child elements were within the root element, their meaning
would still be the same.</t>
          <t>The <tt>id</tt> is a unique string that typically matches the primary domain of the
provider.</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>
          <t>E.g.</t>
          <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. E.g. a config 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 config is
valid for all of these domains. Their order has no meaning - you may sort them
by number of users, importance to the provider, or alphabethically.</t>
          <t>A <tt>&lt;domain purpose="mx"&gt;</tt> specifies the domain name of the MX server of
the email address, and is used config file lookup using MX
server names, as specified in section MX. The <tt>purpose</tt> attribute is
mainly informational and may be ignored.</t>
        </section>
        <section anchor="displayname-and-displayshortname">
          <name>displayName and displayShortName</name>
          <t>E.g.</t>
          <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>
        </section>
      </section>
      <section anchor="documentation">
        <name>documentation</name>
        <t>E.g.</t>
        <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>Records the user help webpage at the provider that describes the mail
server settings. The config may be based on that page, but does not
necessarily have to match it, e.g. when a better config 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>E.g. <tt>&lt;incomingServer type="jmap"&gt;</tt> or <tt>&lt;calendar type="carddav"&gt;</tt></t>
        <ul spacing="normal">
          <li>
            <t>The <tt>type</tt> attribute specifies the wire protocol that this server uses. See
section type 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 config file.
In this case, the one listed first is preferred by the config provider.
Unless the client has specific other requirements, it <bcp14>SHOULD</bcp14> pick the first
config.</t>
          <t>The client may derivate from this recommendation, because
* 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
* the client doesn't support a configuration setting, e.g. it
  doesn't support STARTTLS, or the config 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
* the client has a specific policy to prefer another configuration,
  e.g. a STARTTLS config 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>
          <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 config 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>
        <t>E.g.</t>
        <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>E.g. <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 URL where to contact the
server.</t>
          <t>The URL scheme will normally be HTTPS and the URL start with <tt>https://</tt>.
Some protocols may use other schemes, e.g. WebSockets <tt>wss://</tt>.</t>
        </section>
        <section anchor="authentication">
          <name>authentication</name>
          <t>E.g. <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 optional <tt>system="http"</tt> attribute
signals that the value refers to a <tt>WWW-Authenticate</tt> mechanism.</t>
          <ul spacing="normal">
            <li>
              <t><tt>basic</tt>: Authenticate to the HTTP server using
<tt>WWW-Authenticate: Basic</tt>. See <xref target="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 target="OAuth2"/> Section 3.
The provider <bcp14>MUST</bcp14> adhere to the requirements defined in section OAuth2
in this specification.
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 sections "Multiple authentication alternatives" and
"Authentication verification and fallback" apply here as well.</t>
        </section>
        <section anchor="username">
          <name>username</name>
          <t>E.g. <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 section
"Placeholders".</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>E.g. <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>E.g. <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>E.g. <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>E.g. <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 "password-encrypted".</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 section OAuth2 in
this specification.</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>E.g. <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
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="multiple-authentication-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="authentication-verification-and-fallback">
            <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. E.g. 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>E.g. <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 section
"Placeholders".</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 config 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> read 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="config-retrieval-by-mail-clients">
      <name>Config 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> shall be replaced with the email address
that the user entered and wishes to use, and <tt>%EMAILDOMAIN%</tt> shall be replaced
with the email domain extracted from the email address. For example, for
"fred@example.com", the email domain is "example.com", and for
"fred@test.cs.example.net", the email domain is "test.cs.example.net".</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, you shall make explicit when advertizing or referring to auto
config that there is only partial support of this specification.</t>
      <section anchor="mail-provider">
        <name>Mail provider</name>
        <t>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. https://autoconfig.example.com/mail/config-v1.1.xml?emailaddress=fred@example.com</t>
          </li>
          <li>
            <t>1.2. https://example.com/.well-known/autoconfig/mail/config-v1.1.xml</t>
          </li>
          <li>
            <t>1.3. http://autoconfig.example.com/mail/config-v1.1.xml</t>
          </li>
        </ul>
        <t>Step 1.3. is mainly for legacy servers. Many current deployments
use this HTTP URL.</t>
        <section anchor="customzing-the-config-for-a-specific-user">
          <name>Customzing the config 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. This allows
the mail provider to e.g. separate mailboxes on geographically local mail
servers, e.g. a mail server located in the same office building where an
employee works.</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 section).
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>To avoid that email addresses can be tested for validity, whenever customized
configs are returned, the autoconfig server should respond to non-existing
email addresses with a configuation that appears to be real and is similar in
structure to real configurations, e.g. a random host out of the pool of actual
hosts.</t>
        </section>
      </section>
      <section anchor="central-database">
        <name>Central database</name>
        <t>The ISPDB 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 for mail providers which do not host a config server
described in the previous step. Using a central database (ISPDB) of mail
configurations for the large mail providers will increase the success rate of
finding a valid configuration drastically, up to 10-fold.</t>
        <t>The mail client application may choose the mail config database provider. A
public mail config 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 ".co.uk" and ".com.au".</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 "mx.example.com", the MXFULLDOMAIN and MXBASEDOMAIN are both
"example.com".</t>
          </li>
          <li>
            <t>For "mx.example.co.uk", the MXFULLDOMAIN and MXBASEDOMAIN are both
"example.co.uk".</t>
          </li>
          <li>
            <t>For "mx.premium.europe.example.com", the MXFULLDOMAIN is
"premium.europe.example.com" and the MXBASEDOMAIN is "example.com".</t>
          </li>
        </ul>
        <t>Then, attempt to retrieve the config for these MX domains, using the previous
methods:</t>
        <ul spacing="normal">
          <li>
            <t>3.1. <tt>https://autoconfig.%MXFULLDOMAIN%/.well-known/mail-v1.xml?emailaddress=%EMAILADDRESS%</tt> (Required)</t>
          </li>
          <li>
            <t>3.2. <tt>https://autoconfig.%MXBASEDOMAIN%/.well-known/mail-v1.xml?emailaddress=%EMAILADDRESS%</tt> (Recommended)</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. https://autoconfig.premium.europe.example.com/.well-known/mail-v1.xml?emailaddress=fred@example.com</t>
          </li>
          <li>
            <t>3.2. https://autoconfig.example.com/.well-known/mail-v1.xml?emailaddress=fred@example.com</t>
          </li>
          <li>
            <t>3.3. https://v1.ispdb.net/premium.europe.example.com</t>
          </li>
          <li>
            <t>3.4. https://v1.ispdb.net/example.com</t>
          </li>
        </ul>
      </section>
      <section anchor="local-disk">
        <name>Local disk</name>
        <t>For testing purposes, you 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 your application 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. /home/fred/.config/yourapp/isp/example.com.xml</t>
          </li>
          <li>
            <t>4.2. /opt/yourapp/isp/example.com.xml</t>
          </li>
        </ul>
      </section>
      <section anchor="other-mechanisms">
        <name>Other mechanisms</name>
        <t>You may want to implement other mechanisms to find a configuration, for
example Exchange AutoDiscover, DNS-SRV <xref target="RFC6186"/>,
or heuristic guessing. If you
implement 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 section "Security considerations".</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, you <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="config-validation">
      <name>Config validation</name>
      <section anchor="user-approval">
        <name>User approval</name>
        <t>Independent of the mechanisms used to find the configuration, before using
that configuration, you <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, you <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,
you <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="config-publishing-by-mail-providers">
      <name>Config 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>SHOULD</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="config-location-for-single-domain">
        <name>Config 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%/.well-known/mail-v1.xml?emailaddress=%EMAILADDRESS%</tt></t>
          </li>
        </ul>
        <t>e.g. for fred@example.com</t>
        <ul spacing="normal">
          <li>
            <t>https://autoconfig.example.com/.well-known/mail-v1.xml?emailaddress=fred@example.com</t>
          </li>
        </ul>
        <t>For backwards compatibility with older mail clients,
step 1.2. should also be implemented.</t>
      </section>
      <section anchor="config-location-for-domain-hosters">
        <name>Config 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 location for step 3.1., i.e.</t>
        <ul spacing="normal">
          <li>
            <t><tt>https://autoconfig.%MXFULLDOMAIN%/.well-known/mail-v1.xml?emailaddress=%EMAILADDRESS%</tt></t>
          </li>
        </ul>
        <t>E.g. if the MX server for customer domain example.net is
"mx.premium.europe.example.com", then the config file should be at</t>
        <ul spacing="normal">
          <li>
            <t>https://autoconfig.premium.europe.example.com/.well-known/mail-v1.xml?emailaddress=fred@example.net</t>
          </li>
        </ul>
        <t>For backwards compatibility with older mail clients,
step 3.2. should also be implemented.</t>
      </section>
      <section anchor="return-config-for-non-existing-email-addresses">
        <name>Return config for non-existing email addresses</name>
        <t>Servers <bcp14>SHOULD</bcp14> return a valid config, even if the email address
sent as URL parameter does not exist. Otherwise, spammers
or attackers would be able to test the validity of email addresses.
This is true even if the config server needs the email address
to determine which of multiple configurations is correct.
In such a configuration, if the client sends a non-existing
email address, the config server <bcp14>SHOULD</bcp14> return one of the
valid configuations, so that valid and invalid email addresses
are indistiguishable.</t>
      </section>
      <section anchor="no-authentication-for-config">
        <name>No authentication for config</name>
        <t>Any of the above URLs for retrieving the config 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 "fred" or "fred@example.com" or "fred\EXAMPLE").
Given that this information is required for authentication,
the autoconfig file itself cannot require authentication.</t>
      </section>
      <section anchor="oauth2-requirements">
        <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 config file, or</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> allow the string <tt>open</tt> as client ID, or</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> implement Dynamic Client Registration <xref target="RFC7591"/> in the way
as defined by <xref target="OAuth2Client"/></t>
          </li>
        </ul>
        <t>and accept resulting Client ID, without client secret, or
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 config 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 config file, including for all URL-based protocols like CalDAV
and all TCP-based protocols like IMAP.</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 config 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 ("fred@example.com", or "fred", or "fred\EXAMPLE", 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="SSAPI"/>, 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="security-considerations">
      <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 section "MX".</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 section "User approval".</t>
      </section>
      <section anchor="http">
        <name>HTTP</name>
        <t>HTTP requests may be intercepted, redirected, or altered at the network level.
See "Risk" 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 config 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 section
"User approval".</t>
      </section>
      <section anchor="config-updates">
        <name>Config 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 config 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 section "User approval".</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 target="RFC8126"/>, Section 4</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>
    <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>
  </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="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="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>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="SSAPI">
          <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="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:
H4sIAAAAAAAAA+V9a3PbRpbo9/4VGKZSY6dIypL8VDnOyJacaFaydUV5k6m5
U0OQbEmIQIADgJI1yfyX/S33l93z7AcAynayu3erbqpmLAKN7tOnT58+7x6N
RqbJmtzuJYOTNMuT/XVTzsviIrscmHQ2q+wNvEmDh/O0sZdldbeXZMVFacyi
nBfpEr5fVOlFM8psczFaQk/wv6IZ+S9HOXxYN6Zez5ZZXWdl0dyt4LOjw/O3
SfJVkuZ1CUNlxcKuLPxf0QyGycAusqassjTHH0f7r+GfsoK/zs7fDkyxXs5s
tWcW0POegWFqW9Trei9pqrU1APiOSSub7iVp1Zjbsrq+rMr1ai9x4JlrewfP
F3smGSUMJv7lgdZfi6yelze2wt/4Nf5r9Y+jk/1T/Pf0/eku/js5Oafff8bn
N7ZYA3BJ0hk7SRgBPwJgWXGZfI8N4Cm2CNr9CTE6LiuABeYxv9pLrppmVe9t
bWETfJLd2LE22sIHW7OqvK3tlutjC8fPmqv1DDA8s8VsPb+uoV2wOvXKzgfQ
jFcJmukovvmYuxhnZfvDrU+s/fiqWeYDY+DJVVkhtmGkJLlY5znTzuC1LZLX
PMyA3sFc0iL7Z9oAoewlr21Z2I/0wjJ+cBpjAexPM3o9npdLGKQoqyV8dkNY
fw/0fLXzJs+Anvbo+yatLm3jsQjEkzZVOr+2lcciEHX/nEqcwmi1nuXZfIv7
491DAyWnVXmR5Ta5ACJ9D2ScnFLLhAGo6QOHBPpvJP8msJ2Act+Nkz/b4jqr
3WNG0DsLe5PeFP4VQLqXvE3rhimxr7/XY0Vrq8MA4XF/AappXyU7j3aewM8T
wFL2sR+HSAPjJTUQSnV44c+SVVUiMeQJNs0usjktrDHIQ9xyGTMawX6b1bge
jTET2yTrVZLSZkjS+bxcF01yC1SYlEV+x6SQpItFZes6SYtFskrrGjf0mLta
ZotFbo35KjkqmqpcrOc86vlVVnuQ0jyH7ZKsa1vVSVMmNQ/bXNmsSuzHrG5w
e9oIiKwAsAp7a+jpnJY3SVerXGY2TGYAX9HYCr8laLk/xP4whnyIoBsHenJ+
ZWXGrf6WNi3qpLyQt257KVLtIrmylR2a2yzPk4WF0ZdZYXGCOHpSwv9VgKMK
YGhoslcpQF3ZpLL/WGeVXQxhYvN8vUCgka0BSRhka8lVWTcM+vnxRFjluhLQ
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
BSSEBxrdGfZ/AeTjYZfmywAA

-->

</rfc>
