I found some great articles on the web which explain the Autodiscover search process, and how to control it. By disabling the unwanted lookups, my Autodiscover process became both speedy and reliable.
AutoDiscover Lookup Process
Office 2016 Autodiscover behavior is controlled by the registry key show below, along with related “Values” and “Data”. The “Values” do not exist by default, and missing Values are equivalent to 0 (disabled). A SmarterMail server cannot be located using Office365 or SCP, so I have suggested setting at least those two options to disabled. Depending on the site, other options may be excludable as well:
This Microsoft article describes the search order in more detail:
The list above and the paragraphs below are arranged to indicate the order that connections are attempted.
The device looks for an XML file indicated by a registry key, instead of connecting to a server.
- Key= [HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Autodiscover]
- Type= Type=Reg_sz
- Value=<filepath>, such as: "c:\\autodiscover\\autodiscover.xml"
If registry key (dword) "PreferLocalXML"=1, this method will be attempted first. If it is zero or not present, it is attempted after the HTTPS Autodiscover Domain option fails.
I do not see an option for "Exclude Local XML", since the obvious way to exclude this option is to omit the required registry keys or remove the referenced file.
Last Known Good
The device uses whatever was most recently successful.
This method is disabled if registry entry “ExcludeLastKnownGood” has value 1, but I cannot imagine why that would be desirable.
The device tries to connect to Office 365.
This method is disabled if registry entry “ExcludeExplicitO365Endpoint” has value 1.
The device searches for Active Directory information. The necessary fields for SCP could in theory be created with ADSIEDIT, but I have no information about what settings would be needed. For Exchange environments, this data is apparently configured automatically by the Exchange installation and configuration tools.
This method is disabled if registry entry “ExcludeScpLookup” has value 1.
Https Root Domain
This method is disabled if registry entry “ExcludeHttpsRootDomain” has value 1.
Https Autodiscover Domain
This method is disabled if registry entry “ExcludeHttpsAutodiscoverDomain” has value 1.
This is used for environments with many domains, to avoid the complexity and expense of having a certificate for each supported domain. The device connects to
(which does not require a certificate), and is then redirected to
Which allows all domains to use a single certificate issued to <anydomain>.
This method is disabled if registry entry “ExcludeHttpRedirect” has value 1.
This method is disabled if registry entry “ExcludeSrvRecord” has value 1.