<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mailmaint-pacc-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="PACC">PACC - Automatic configuration for mail servers, calendar and contacts sync</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mailmaint-pacc-00"/>
    <author fullname="Ben Bucksch">
      <organization>Beonex</organization>
      <address>
        <email>ben.bucksch@beonex.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="21"/>
    <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-ietf-mailmaint-pacc.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-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 SMTP servers
that accept email for the user's email address:</t>
          <artwork><![CDATA[
example.com   MX   %PRIORITY% %MXSERVER%.
]]></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), given that the priority numbers
are in reverse order. If there are multiple responses
with the same lowest priority number, the client takes only the first one.
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 configuration information in the PACC file includes the
authentication method. Without the PACC file, the client does not know which
authentication method to use. Given that this information is required for
authentication, the PACC config file 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>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>
        </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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

-->

</rfc>
