<?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-bucksch-mailmaint-pacc-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="PACC">PACC - Automatic configuration for mail servers, calendar and contacts sync</title>
    <seriesInfo name="Internet-Draft" value="draft-bucksch-mailmaint-pacc-00"/>
    <author fullname="Ben Bucksch">
      <organization>Beonex</organization>
      <address>
        <email>ben.bucksch@beonex.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="20"/>
    <area>ART</area>
    <workgroup>mailmaint</workgroup>
    <keyword>configuration</keyword>
    <keyword>autoconfig</keyword>
    <keyword>autodiscover</keyword>
    <keyword>mail</keyword>
    <keyword>email</keyword>
    <keyword>calendar</keyword>
    <keyword>contacts</keyword>
    <keyword>IMAP</keyword>
    <keyword>SMTP</keyword>
    <keyword>JMAP</keyword>
    <keyword>OAuth2</keyword>
    <abstract>
      <?line 45?>

<t>Set up a mail account with only email address and password.
This uses the DNS SRV mechanism to find the configuration.
It is meant for new mail servers that adapt their configuration
to current best practices.</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/pacc/draft-bucksch-mailmaint-pacc.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bucksch-mailmaint-pacc/"/>.
      </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/pacc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 52?>

<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 PACC,
will determine the parameters that are required, including the URL,
authentication method, and OAuth2 server. Contact sync and calendar
can also be set up automatically.</t>
      <t>The protocol works by first determining the domain from the email address, and
the querying a DNS SRV record at the email provider, which returns a URL
to a JSON document, which then contains the configuration parameters.</t>
      <t>While this PACC protocol fulfills the same purpose as the earlier Autoconfig
protocol, it uses a different mechanism - DNS SRV instead of well-known URLs -,
and requires that the server employs certain best practices, e.g. to use
the full email address as username. PACC mandates Direct TLS for all servers.
For OAuth2, it uses Open ID Connect and Dynamic Client Registration.</t>
    </section>
    <section anchor="data-format">
      <name>Data format</name>
      <t>The configuration file <bcp14>MUST</bcp14> have the following data format and qualities.</t>
      <t>The MIME type is <tt>text/json</tt>.</t>
      <section anchor="json-config-file">
        <name>JSON config file</name>
        <t>The following example shows the syntax of the JSON config file.</t>
        <artwork><![CDATA[
{
  servers: {
    jmap: {
      url: "https://jmap.example.net/session",
      authentication: [
        "OAuth2",
        "http-basic",
      ]
    },
    imap: {
      url: "imaps://imap.example.net",
      authentication: [
        "OAuth2",
        "sasl-plain",
      ]
    },
    pop3: {
      url: "imaps://pop3.example.net",
      authentication: [
        "OAuth2",
        "sasl-SCRAM-SHA-256-PLUS",
        "sasl-plain",
        "native"
      ]
    },
    smtp: {
      url: "imaps://pop3.example.net",
      authentication: [
        "OAuth2",
        "sasl-SCRAM-SHA-256-PLUS",
        "sasl-plain"
      ]
    },
    caldav: {
      url: "https://sync.example.net/calendar/",
      authentication: [
        "OAuth2",
        "http-basic",
      ]
    },
    carddav: {
      url: "https://sync.example.net/contacts/",
      authentication: [
        "OAuth2",
        "http-basic",
      ]
    }
  },
  oAuth2: {
    issuer: "auth.example.net"
  },
  provider: {
    name: "ACME BestService WorkPlaceMail",
    shortName: "ACME",
    logo: [
      {
        url: "https://www.example.net/logo.svg",
        mimetype: "image/svg"
      },
      {
        url: "https://www.example.net/logo.png",
        mimetype: "image/png",
        width: "128",
        height: "128",
      },
      {
        url: "https://www.example.net/logo-512.png",
        mimetype: "image/png",
        width: "512",
        height: "512",
      }
    ]
  },
  help: {
    documentation: "https://help.example.net/howto/set-up-your-mail-app.html",
    developer: "https://developer.example.net/client-apps/",
    contact: "mailto:it@team.example.net"
  },
  version: "1.0"
}
]]></artwork>
      </section>
      <section anchor="servers">
        <name>servers</name>
        <t>E.g.</t>
        <artwork><![CDATA[
servers: {
  jmap: {
    url: "https://jmap.example.net/session",
    authentication: [ ... ]
  },
  imap: { ... }
}
]]></artwork>
        <t><tt>servers</tt> is a top-level property containing an object map. The key is a
<tt>protocol</tt> name, defined in section "Protocol". The value is an object
which describes the server and is defined in this section.</t>
        <section anchor="protocol">
          <name>Protocol</name>
          <t>The <tt>protocol</tt> is the key of the object map inside the <tt>servers</tt> property.</t>
          <t>It specifies which wire protocol to use for this server.</t>
          <table>
            <thead>
              <tr>
                <th align="left">Protocol</th>
                <th align="left">URL scheme</th>
                <th align="left">Port</th>
                <th align="left">Name</th>
                <th align="left">Specification</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>jmap</tt></td>
                <td align="left">https</td>
                <td align="left">443</td>
                <td align="left">JMAP</td>
                <td align="left">RFC 8620, RFC 8621, RFC 8887, RFC 9610 et al</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>imap</tt></td>
                <td align="left">imaps</td>
                <td align="left">993</td>
                <td align="left">IMAP</td>
                <td align="left">RFC 9051 or RFC 3501, et al</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>pop3</tt></td>
                <td align="left">pop3s</td>
                <td align="left">995</td>
                <td align="left">POP3</td>
                <td align="left">RFC 1939, RFC 5034</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>smtp</tt></td>
                <td align="left">submissions</td>
                <td align="left">465</td>
                <td align="left">SMTP</td>
                <td align="left">RFC 5321, RFC 2822</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>caldav</tt></td>
                <td align="left">https</td>
                <td align="left">443</td>
                <td align="left">CalDAV</td>
                <td align="left">RFC 4791</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>carddav</tt></td>
                <td align="left">https</td>
                <td align="left">443</td>
                <td align="left">CardDav</td>
                <td align="left">RFC 6352</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>webdav</tt></td>
                <td align="left">https</td>
                <td align="left">443</td>
                <td align="left">WebDAV</td>
                <td align="left">RFC 4918</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>managesieve</tt></td>
                <td align="left">sieves</td>
                <td align="left">443</td>
                <td align="left">ManageSieve</td>
                <td align="left">RFC 5804, RFC 5228</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>ews</tt></td>
                <td align="left">https</td>
                <td align="left">443</td>
                <td align="left">Exchange Web Services</td>
                <td align="left"> </td>
              </tr>
              <tr>
                <td align="left">
                  <tt>activeSync</tt></td>
                <td align="left">https</td>
                <td align="left">443</td>
                <td align="left">ActiveSync</td>
                <td align="left"> </td>
              </tr>
              <tr>
                <td align="left">
                  <tt>graph</tt></td>
                <td align="left">https</td>
                <td align="left">443</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. Their
respective registrations need to define:</t>
          <ul spacing="normal">
            <li>
              <t>Protocol: The <tt>protocol</tt> name, as appearing in the JSON</t>
            </li>
            <li>
              <t>URL scheme: Which URL scheme or schemes are to used in the URL</t>
            </li>
            <li>
              <t>Port: The default port number, if none is given in the URL</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 Properties: (Optional) Protocol-specific JSON properties and
their meaning.</t>
            </li>
          </ul>
        </section>
        <section anchor="url">
          <name>URL</name>
          <t>E.g.</t>
          <artwork><![CDATA[
    url: "https://jmap.example.net/session"
    url: "imaps://imap.example.net:1993"
]]></artwork>
          <t>The <tt>url</tt> property specifies the where and how to contact the server.</t>
          <section anchor="url-scheme">
            <name>URL scheme</name>
            <ul spacing="normal">
              <li>
                <t>For protocols based on HTTPS or WebDAV, the URL scheme is <tt>https</tt>.</t>
              </li>
              <li>
                <t>For protocols based on WebSockets, the URL scheme is <tt>wss</tt>.</t>
              </li>
              <li>
                <t>TCP-based protocols might use other URL schemes, like <tt>imaps</tt>,
as defined in section "Protocols".</t>
              </li>
            </ul>
          </section>
          <section anchor="hostname">
            <name>Hostname</name>
            <t>The hostname in the URL <bcp14>MUST</bcp14> be the fully qualified domain name of the
server which the client is supposed to contact for that protocol.</t>
          </section>
          <section anchor="port">
            <name>Port</name>
            <t>If no port is in the URL, the Port as defined in the "Protocols" or in the
IANA registry is used as the default port. If the server port matches that
default port, it <bcp14>SHOULD NOT</bcp14> be specified in the URL.
If the URL contains an explicit port, that part <bcp14>MUST</bcp14> be used by the client.</t>
          </section>
          <section anchor="path">
            <name>Path</name>
            <t>For some protocols like IMAP, POP3 and SMTP, the path is empty.</t>
          </section>
        </section>
        <section anchor="authentication">
          <name>authentication</name>
          <t>E.g.</t>
          <artwork><![CDATA[
authentication: [ "http-basic" ]
authentication: [ "sasl-SCRAM-SHA-256-1" ]
]]></artwork>
          <t>The <tt>authentication</tt> property is an array that defines which authentication
methods are available to use. Each of them <bcp14>MUST</bcp14> work.</t>
          <section anchor="authentication-methods">
            <name>Authentication methods</name>
            <ul spacing="normal">
              <li>
                <t>For HTTPS or WebSocket-based protocols, these can be authentication methods
used in <tt>WWW-authenticate</tt> the HTTP header. The value is <tt>http-</tt> plus the
HTTP authentication scheme name, case-insensitive. See RFC 7617 and 7616.
E.g. <tt>http-basic</tt> for <tt>WWW-Authenticate: Basic</tt>, or <tt>http-NTLM</tt>.</t>
              </li>
              <li>
                <t>For TCP-based protocols, these can be SASL schemes. The value is <tt>sasl-</tt>
plus the SASL scheme name in uppercase.
E.g. <tt>sasl-SCRAM-SHA-256-1</tt> or <tt>sasl-PLAIN</tt>.</t>
              </li>
              <li>
                <t>For OAuth2, the value is <tt>OAuth2</tt>.
                </t>
                <ul spacing="normal">
                  <li>
                    <t>With TCP, SASL <tt>OAUTHBEARER</tt> (current) or <tt>XOAUTH2</tt> (deprecated) or
successors may be used.</t>
                  </li>
                  <li>
                    <t>With HTTP, <tt>WWW-Authenticate: Bearer</tt> or a successor is used.
See RFC 6750 Section 3.</t>
                  </li>
                  <li>
                    <t>The provider <bcp14>MUST</bcp14> adhere to the requirements defined in section
"OAuth2 requirements" in this specification.</t>
                  </li>
                </ul>
              </li>
            </ul>
          </section>
          <section anchor="multiple-authentication-alternatives">
            <name>Multiple authentication alternatives</name>
            <t>The <tt>authentication</tt> array may contain multiple mechanisms for a single server.
Each of them <bcp14>MUST</bcp14> work.</t>
            <t>The client can choose which of those to use, based on implementation
support, available authentication data, and client policy.</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 authentication
method itself failed, or the error code indicates a systemic failure,
the client <bcp14>MAY</bcp14> use another 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 unrelated
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">
          <name>Username</name>
          <t>For all protocols, the email address that the user entered during setup
will be used by the client as username on the target protocol level.</t>
          <t>The provider <bcp14>MUST</bcp14> ensure that any valid email address that the user might enter
during setup is a valid username for all servers given in this configuration.
This may require a mapping on the server level from email address to internal
username. This mapping happens internally in the server and the client
is not involved in this mapping.</t>
        </section>
        <section anchor="multiple-server-protocols">
          <name>Multiple server protocols</name>
          <t>While PACC supports only a single server per protocol, it <bcp14>MAY</bcp14> give the client
the choice of different protocols. Not all clients might implement all
protocols. That's why the PACC file <bcp14>SHOULD</bcp14> contain all protocols that the
provider offers to its users.</t>
          <t>The client chooses which protocol to use, based on</t>
          <ul spacing="normal">
            <li>
              <t>which protocols the client implements,</t>
            </li>
            <li>
              <t>the configuration returned, e.g. 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,</t>
            </li>
            <li>
              <t>client policy, e.g. the client preferring JMAP over IMAP.</t>
            </li>
          </ul>
          <t>Server 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 anchor="tls-validation">
          <name>TLS validation</name>
          <t>In all cases where TLS is used,
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="provider">
        <name>provider</name>
        <t><tt>provider</tt> property is a top-level property and contains <tt>name</tt>, <tt>shortName</tt>,
and <tt>logo</tt>.</t>
        <section anchor="name-and-shortname">
          <name>name and shortName</name>
          <t>E.g.</t>
          <artwork><![CDATA[
name: "ACME BestService WorkPlaceMail"
shortName: "ACME"
]]></artwork>
          <t>The <tt>name</tt> property 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>shortName</tt> property 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 anchor="logo">
          <name>logo</name>
          <t>The <tt>logo</tt> property contains an array of alternative logos of the provider.
The client chooses the variant that best fits its UI and technical requirements.</t>
          <t>Each object in the array contains the following properties:
* <tt>url</tt> - Where the logo can be downloaded. The client <bcp14>MAY</bcp14> download
  the logo file during configuration and save it locally.
* <tt>mimetype</tt> - The media type of the logo. It <bcp14>MUST</bcp14> start with <tt>image/</tt>.
  At least one of the logos <bcp14>SHOULD</bcp14> be of type <tt>image/svg</tt> or <tt>image/png</tt>.
* <tt>width</tt> - The width in pixels of the image in the file.
  Optional. Not given for SVG files.
* <tt>height</tt> - The height in pixels of the image in the file.
  Optional. Not given for SVG files.</t>
          <t>It is <bcp14>RECOMMENDED</bcp14> to include either an SVG logo, or a PNG files of sizes
128x128 and 512x512, or all of these. Additional sizes and file formats
<bcp14>MAY</bcp14> be included.</t>
        </section>
      </section>
      <section anchor="help">
        <name>help</name>
        <t>This is purely informational and not required for the automatic setup.
All of the information is optional. A contact <bcp14>SHOULD</bcp14> be included.</t>
        <section anchor="documentation">
          <name>documentation</name>
          <t>E.g. <tt>documentation: "https://help.example.net/howto/set-up-your-mail-app.html"</tt></t>
          <t>Records the user help webpage at the provider that describes the mail
server settings.</t>
          <t>The config in the PACC file does not necessarily have to match the config
proposed on this webpage.</t>
        </section>
        <section anchor="developer">
          <name>developer</name>
          <t>E.g. <tt>developer: "https://developer.example.net/client-apps/"</tt></t>
          <t>Webpage with information for mail application developers.</t>
        </section>
        <section anchor="contact">
          <name>contact</name>
          <t>E.g. <tt>contact: "mailto:it@team.example.net"</tt></t>
          <t>Allows a direct contact from mail application developers to mail
server adminstrators. This is useful to resolve issues with this
configuration, e.g. when the configuration in the PACC file is outdated,
or with the mail servers, e.g. when the mail server is misconfigured or
otherwise has a compatibility or security problem.</t>
          <t>This <bcp14>MUST NOT</bcp14> be a generic hotline for end users, nor the genercal
company switchboard. It <bcp14>SHOULD</bcp14> be a way to reach the technical team
of the provider, to resolve technical issues on the side of the provider.</t>
          <t>Contains an URL with an email address (<tt>mailto:</tt> URL), phone number
(<tt>tel:</tt> URL), or webpage (<tt>https</tt> URL) which contains this contact info.
Note that problems might appear only after many years, so please ensure
longevity of the contact.</t>
        </section>
      </section>
      <section anchor="version">
        <name>version</name>
        <t><tt>version</tt> property is a top-level property.</t>
        <t>The <tt>version</tt> is <tt>1.0</tt> for the version defined in this specification.
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="json-validation">
        <name>JSON validation</name>
        <t>The client <bcp14>SHOULD</bcp14> validate that the config file is valid JSON as per RFC 8259,
and if the JSON syntax is invalid, the client <bcp14>SHOULD</bcp14> ignore the entire file.
In contrast, if there are merely unknown JSON
properties, the client <bcp14>MUST NOT</bcp14> ignore the file.</t>
        <t>The client <bcp14>SHOULD</bcp14> read only the properties 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 properties and <bcp14>MUST NOT</bcp14> drop or ignore a configuration
that contains unknown properties. 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
the email domain or from the email hoster.</t>
      <t>The client <bcp14>MAY</bcp14> perform both queries in parallel, but <bcp14>MUST</bcp14> give precendence
to the results from the direct email domain, even if they return slower.</t>
      <t>In the URLs below, <tt>%EMAILDOMAIN%</tt> shall be replaced with the email domain
extracted from the email address that the user entered and wishes to use.
For example, for "fred@example.net", the email domain is "example.net", and
for "fred@test.cs.example.net", the email domain is "test.cs.example.net".</t>
      <section anchor="email-address-domain">
        <name>Email address domain</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>
        <section anchor="dns-srv-query">
          <name>DNS SRV query</name>
          <t>The client makes a DNS SRV lookup for <tt>_pacc._https</tt> on the domain
of the user's email address:</t>
          <artwork><![CDATA[
DNS SRV _pacc._https.%EMAILDOMAIN%.
]]></artwork>
          <t>e.g.</t>
          <artwork><![CDATA[
DNS SRV _pacc._https.example.com.
]]></artwork>
        </section>
        <section anchor="dns-srv-response">
          <name>DNS SRV response</name>
          <t>The DNS server returns a DNS SRV record with the hostname of the HTTPS server
where the PACC config file can be found:</t>
          <artwork><![CDATA[
_pacc._https.%EMAILDOMAIN%.   SRV   0 0 443 %HOSTNAME%.
]]></artwork>
          <t>e.g.</t>
          <artwork><![CDATA[
_pacc._https.example.com.   SRV   0 0 443 pacc.example.com.
]]></artwork>
          <t>The port <bcp14>MUST</bcp14> be 443. The priority and weight may be disregarded. Only the
hostname is extracted from the response.</t>
        </section>
        <section anchor="url-construction">
          <name>URL construction</name>
          <t>The client takes the hostname, and constructs the PACC retrieval URL from it,
by using <tt>https</tt>, that hostname, standard port 443, and path
<tt>/.well-known/pacc.json</tt>:</t>
          <artwork><![CDATA[
https://%HOSTNAME%/.well-known/pacc.json
]]></artwork>
          <t>e.g.</t>
          <artwork><![CDATA[
https://pacc.example.com/.well-known/pacc.json
]]></artwork>
        </section>
        <section anchor="config-file-retrieval">
          <name>Config file retrieval</name>
          <t>The client retrieves the <tt>https</tt> URL constructed in the previous step.</t>
          <t>The HTTP <tt>Accept</tt> request header <bcp14>MUST</bcp14> allow <tt>text/json</tt>, e.g.
<tt>Accept: text/json</tt> or <tt>text/*</tt> or <tt>*/*</tt>.</t>
          <t>The returned file <bcp14>MUST</bcp14> be a PACC file following the specifications in section
"Data format".</t>
        </section>
      </section>
      <section anchor="mx-domain">
        <name>MX domain</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 with valid TLS certificate for each of their
customers, and to convince their customers to modify their root DNS
specifically for PACC. To handle such domains,
the protocol first needs to find the domain of the party hosting the email.</t>
        <t>If the query on the email domain as described above yields no result,
the client <bcp14>SHOULD</bcp14> perform a DNS MX lookup on the email domain, and retrieve
the MX server hostname for that domain and look for a PACC file for the
MX hostname, using the following mechanism.</t>
        <section anchor="dns-mx-query">
          <name>DNS MX query</name>
          <t>The client makes a DNS MX lookup on the domain of the user's email address:</t>
          <artwork><![CDATA[
DNS MX %EMAILDOMAIN%.
]]></artwork>
          <t>e.g.</t>
          <artwork><![CDATA[
DNS MX example.com.
]]></artwork>
        </section>
        <section anchor="dns-mx-response">
          <name>DNS MX response</name>
          <t>The DNS server returns the DNS MX records with the hostnames of the MX servers
that accept email for the user's email address:</t>
          <artwork><![CDATA[
example.com   MX   %PRIORITY% %MXSERVER1%.
]]></artwork>
          <t>e.g.</t>
          <artwork><![CDATA[
example.com   MX   10 beetruche1.mx.example.net.
example.com   MX   10 beetruche2.mx.example.net.
example.com   MX   30 beetruche3.mx.example.net.
]]></artwork>
          <t>The client takes only the highest priority result, i.e. the one with the
lowest priority number (in this example 10). If there are multiple responses
with the same lowest priority number, the client takes only the first of them.
The client takes the hostname of this MX server as result <tt>%MXSERVER%</tt>.</t>
        </section>
        <section anchor="dns-srv-query-1">
          <name>DNS SRV query</name>
          <t>The client makes a DNS SRV lookup for <tt>_paccmx._https</tt> on the hostname
of the MX server retrieved in the last step:</t>
          <artwork><![CDATA[
DNS SRV _paccmx._https.%EMAILDOMAIN%.
]]></artwork>
          <t>e.g.</t>
          <artwork><![CDATA[
DNS SRV _paccmx._https.beetruche1.mx.example.net.
]]></artwork>
          <t>Please note that the service part in this case is <tt>_paccmx</tt>, not <tt>_pacc</tt>.</t>
        </section>
        <section anchor="dns-srv-response-1">
          <name>DNS SRV response</name>
          <t>The DNS server returns a DNS record with the hostname of the HTTPS server
where the PACC config file can be found:</t>
          <artwork><![CDATA[
_paccmx._https.%MXSERVER%.   SRV   0 0 443 %HOSTNAME%.
]]></artwork>
          <t>e.g.</t>
          <artwork><![CDATA[
_paccmx._https.beetruche1.mx.example.net.   SRV   0 0 443 pacc.example.net.
]]></artwork>
          <t>The port <bcp14>MUST</bcp14> be 443. The priority and weight may be disregarded. Only the
hostname is extracted from the response.</t>
          <t>From here, the client continues as described above under sections
"URL construction" and "Config file retrieval".</t>
        </section>
      </section>
      <section anchor="example-dns-srv-records-for-an-email-domain">
        <name>Example DNS SRV records for an email domain</name>
        <t>In this example, example.com hosts its email and PACC config file itself:</t>
        <artwork><![CDATA[
$ORIGIN example.com.
_pacc._https   SRV   0 0 443 pacc.example.com.
pacc           A     192.0.2.9
]]></artwork>
      </section>
      <section anchor="example-dns-srv-records-for-an-email-hoster">
        <name>Example DNS SRV records for an email hoster</name>
        <t>In this example, example.com hosts its email with hoster example.net:</t>
        <artwork><![CDATA[
$ORIGIN example.com.
@             MX    10 beettruce1.mx.example.net

$ORIGIN example.net.
_paccmx._https.beettruce1.mx   SRV   0 0 443 pacc.example.net.
pacc                           A     192.0.1.9
]]></artwork>
      </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 config contains the authentication method.
Without knowing the config, the client does not know which
authentication method to use. Given that the config is required for
authentication, the config itself cannot require authentication.</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>The client <bcp14>MUST NOT</bcp14> cut off parts of long second-level domains, to avoid
spoofing. At least 63 characters <bcp14>MUST</bcp14> be displayed.</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 may redirect 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 anchor="oauth2-requirements">
        <name>OAuth2 requirements</name>
        <t>If OAuth2 is used, the OAuth2 server <bcp14>MUST</bcp14> adhere to the
<eref target="https://datatracker.ietf.org/doc/draft-ietf-mailmaint-oauth-public/">OAuth Profile for Open Public Clients</eref>.</t>
        <t>Particularly, the Dynamic Client Registration <bcp14>MUST</bcp14> be implemented and give
a working Client ID in response HTTP calls defined by the specification.
Alternatively, the Client ID <tt>open</tt> <bcp14>MUST</bcp14> be accepted without client secret.
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 specifications also contain requirements for expiry times and
the login page, which are needed for mail client applications to work.</t>
        <t>The OAuth2 scopes defined in the specification <bcp14>MUST</bcp14> be included and <bcp14>MUST</bcp14>
give access to the servers published in PACC.</t>
        <t>A single token <bcp14>MUST</bcp14> work for all servers returned in PACC, so that a single
user login is sufficient for all services. For that purpose, the client
will include all relevant scopes in the authentication requests.</t>
      </section>
    </section>
    <section anchor="alternatives-considered">
      <name>Alternatives considered</name>
      <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 Kerberos / GSSAPI, but when trying
to use it, the method fails, and also runs into a long 2 minute timeout in
some cases. End users consider that to be a broken app.</t>
        <t>Additionally, such commands are protocol specific and have to be implemented
in multiple different ways.</t>
        <t>Finally, some non-mail protocols may not support capabilties commands that
include authentication methods.</t>
      </section>
    </section>
    <section anchor="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>This protocol relies on DNS SRV and DNS MX lookups to find the PACC file.
DNS requests are not signed and can therefore be intercepted, spoofed and
manipulated. This would allow the attacker to change the PACC file URL
and return email and authentication servers under the attacker's control,
stealing passwords.</t>
        <t>One possible mitigation is to check whether the domain of the PACC file URL
matches the user's email address domain. However, that will not be the case
for the majority of domains, which are served by email hosters.</t>
        <t>Another 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="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 PACC 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>
      </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
"PACC":</t>
        <t>Registry Name: "PACC Protocol Type Names"</t>
        <t>Registration Procedure: Specification Required, per RFC 8126, Section 4</t>
        <t>Designated Expert: Ben Bucksch, author of this document.</t>
      </section>
      <section anchor="contents">
        <name>Contents</name>
        <t>Table, with fields Protocol (alphanumeric), URL scheme, Port (default port number, if not specified in the URL), Name, Specification, and Additional Properties</t>
        <t>The registrations need to define
* Protocol: The <tt>protocol</tt> name, as appearing in the JSON
* URL scheme: Which URL scheme or schemes are to used in the URL
* Port: The default port number, if none is given in the URL
* Name: The commonly used name of the protocol
* Specification: Which RFCs or document specifies the protocol, and
* Additional Properties: (Optional) Protocol-specific JSON properties and
  their meaning.</t>
      </section>
      <section anchor="initial-registration">
        <name>Initial registration</name>
        <table>
          <thead>
            <tr>
              <th align="left">Protocol</th>
              <th align="left">URL scheme</th>
              <th align="left">Port</th>
              <th align="left">Name</th>
              <th align="left">Specification</th>
              <th align="left"> </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-------------</td>
              <td align="left">-----------</td>
              <td align="left">----</td>
              <td align="left">------------</td>
              <td align="left">----------------------------------</td>
              <td align="left">Additional Properties</td>
            </tr>
            <tr>
              <td align="left">
                <tt>jmap</tt></td>
              <td align="left">https</td>
              <td align="left">443</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">
                <tt>imap</tt></td>
              <td align="left">imaps</td>
              <td align="left">993</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">
                <tt>pop3</tt></td>
              <td align="left">pop3s</td>
              <td align="left">995</td>
              <td align="left">POP3</td>
              <td align="left">RFC 1939, RFC 5034</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>smtp</tt></td>
              <td align="left">submissions</td>
              <td align="left">465</td>
              <td align="left">SMTP</td>
              <td align="left">RFC 5321, RFC 2822</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>caldav</tt></td>
              <td align="left">https</td>
              <td align="left">443</td>
              <td align="left">CalDAV</td>
              <td align="left">RFC 4791</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>carddav</tt></td>
              <td align="left">https</td>
              <td align="left">443</td>
              <td align="left">CardDav</td>
              <td align="left">RFC 6352</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>webdav</tt></td>
              <td align="left">https</td>
              <td align="left">443</td>
              <td align="left">WebDAV</td>
              <td align="left">RFC 4918</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>managesieve</tt></td>
              <td align="left">sieves</td>
              <td align="left">443</td>
              <td align="left">ManageSieve</td>
              <td align="left">RFC 5804, RFC 5228</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>ews</tt></td>
              <td align="left">https</td>
              <td align="left">443</td>
              <td align="left">Exchange Web Services</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>activeSync</tt></td>
              <td align="left">https</td>
              <td align="left">443</td>
              <td align="left">ActiveSync</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <tt>graph</tt></td>
              <td align="left">https</td>
              <td align="left">443</td>
              <td align="left">Microsoft Graph</td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>The Additional Properties field is empty in all of the initial values.</t>
      </section>
      <section anchor="addition-of-dns-srv-service-names-pacc-and-paccmx">
        <name>Addition of DNS SRV Service Names pacc and pacc_mx</name>
        <section anchor="new-records-to-be-registered">
          <name>New records to be registered</name>
          <table>
            <thead>
              <tr>
                <th align="left">Service Name</th>
                <th align="left">Transport Protocol</th>
                <th align="left">References</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">
                  <tt>pacc</tt></td>
                <td align="left">
                  <tt>https</tt></td>
                <td align="left">[PACC] This document</td>
              </tr>
              <tr>
                <td align="left">
                  <tt>paccmx</tt></td>
                <td align="left">
                  <tt>https</tt></td>
                <td align="left">[PACC] This document</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="registration-of-srv-service-name-pacc">
          <name>Registration of SRV Service Name pacc</name>
          <t>In the "Service Name and Transport Protocol Port Number" registry:</t>
          <ul spacing="normal">
            <li>
              <t>Service Name: <tt>pacc</tt></t>
            </li>
            <li>
              <t>Transport Protocol(s): <tt>https</tt></t>
            </li>
            <li>
              <t>Assignee: Ben Bucksch</t>
            </li>
            <li>
              <t>Contact: ben.bucksch@beonex.com</t>
            </li>
            <li>
              <t>Description: PACC - Automatic configuration of mail servers</t>
            </li>
            <li>
              <t>Reference: [PACC] This document</t>
            </li>
            <li>
              <t>Port Number: -</t>
            </li>
            <li>
              <t>Service Code: -</t>
            </li>
            <li>
              <t>Known Unauthorized Uses: -</t>
            </li>
            <li>
              <t>Assignment Notes: -</t>
            </li>
          </ul>
        </section>
        <section anchor="registration-of-srv-service-name-paccmx">
          <name>Registration of SRV Service Name paccmx</name>
          <t>In the "Service Name and Transport Protocol Port Number" registry:</t>
          <ul spacing="normal">
            <li>
              <t>Service Name: <tt>paccmx</tt></t>
            </li>
            <li>
              <t>Transport Protocol(s): <tt>https</tt></t>
            </li>
            <li>
              <t>Assignee: Ben Bucksch</t>
            </li>
            <li>
              <t>Contact: ben.bucksch@beonex.com</t>
            </li>
            <li>
              <t>Description: PACC - Automatic configuration of mail servers via MX</t>
            </li>
            <li>
              <t>Reference: [PACC] This document</t>
            </li>
            <li>
              <t>Port Number: -</t>
            </li>
            <li>
              <t>Service Code: -</t>
            </li>
            <li>
              <t>Known Unauthorized Uses: -</t>
            </li>
            <li>
              <t>Assignment Notes: -</t>
            </li>
          </ul>
        </section>
        <section anchor="use-of-https-as-protocol">
          <name>Use of _https as protocol</name>
          <t>While <tt>tcp</tt> is typically used for proto, <tt>https</tt> is also valid and is more
precise in this case.</t>
          <t><tt>https</tt> is already defined as service, and therefore may also be used as
Transport Protocol, per the definition of RFC 2782: "Proto ...
any name defined by Assigned Numbers or locally may be used (as for Service)".</t>
          <t>In case <tt>https</tt> cannot be used as transport protocol, <tt>tcp</tt> will be registered
instead.</t>
          <t>References:
* RFC 2782 Section "The format of the SRV RR"
* RFC 6335 Section 5.2
* <eref target="https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbe1rs.xhtml">https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbe1rs.xhtml</eref></t>
        </section>
      </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-normative-references">
      <name>Normative References</name>
      <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>
  </back>
  <!-- ##markdown-source:
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
AAA=

-->

</rfc>
