Функция автоматического обнаружения (Autodiscover)появилась еще в Exchange Server 2007. Основанная задача Autodiscover – возможность поиска почтовым клиентом почтового сервера Exchange и автоматического подключения почтового ящика. От пользователя Outlook нужно только указать свое email и пароль, все остальное Outlook при помощи Autodiscover выполнит сам.
При тестировании нового почтового клиента Outlook 2016при внешнем подключении к Exchange было замечено, что автоматическая настройка клиента может занимать несколько минут (в нашем случае около 8 мин). Проблема заключается в том, что Autodiscover отрабатывает слишком долго.
Чтобы разобраться с проблемой, нужно понимать порядок работы Autodiscover. Для корректной работы автоматического обнаружения клиент любым доступным способом должен получить XML файл с настройками и автоматически настроится согласно этим параметрам.
Клиенты Outlook 2007 и выше при первоначальной настройке пытаются обнаружить файл Autodiscover.xml несколькими способами, порядок перебора которых жестко запрограммирован в Outlook. Последовательно перебираются следующие варианты:
- Поиск и обращение к записи SCP (Service Connection Point) в Active Directory (работает только на компьютерах в составе домена Active Directory)
- Обращение по HTTPS к корневому домену (определяется по SMTP адресу пользователя) по url адресу https://<smtp-domain>.ru/Autodiscover/Autodiscover.xml
- HTTPS запрос к записи Autodiscover домена (https://autodiscover.<smtp-domain>.ru/Autodiscover/Autodiscover.xml)
- Проверка локального XML файла
- HTTP перенаправление с http://<smtp-domain>.ru/Autodiscover/Autodiscover.xml на HTTPS-сайт
- Поиск в DNS-е SRV записи _autodiscover._tcp.<smtp-domain>.ru
- Кэшированные данные в профиле Outlook (Outlook 2013 и выше), при условии успешного предыдущего автообнаружения
Outlook последовательно перебирает эти методы, и если успешный ответ получен, дальнейшие проверки не выполняются. Если ни один из методов не вернул ответа, процедура Autodiscover считается проваленной.
Примечание. В Outlook 2016 помимо использования по-умолчанию MAPI over HTTP разработчики решили полностью выпилить возможность ручной настройки подключения к Exchange, теперь настройка ящика Exchange возможно только через автообнаружение. Протоколы Active Sync, POP и IMAP по-прежнему настраиваются вручную.
Для доменной среды предпочтительный метод автообнаружения — Service Connection Point в Active Directory. Второй метод (HTTPS запрос с корню домена), практически не используется, но именно он и проверяется в первую очередь для внешних клиентов. Если адрес <smtp-domain>.ru ведет на сервер, который не доступен или не отвечает на HTTPS (443), процедура автообнаружения замирает, ожидая ответа и в итоге отваливается по таймауту. Отсюда большая задержка при настройке клиента.
Если запустить утилиту Test E-mail AutoConfiguration (средство Проверки автоконфигурации электронной почты), можно увидеть, что Autodiscover пытается выполнить 11 HTTPS запросов к http://<smtp-domain>.ru /autodiscover/autodiscover.xml, каждый из которых отваливается по таймату примерно через 30 секунд. Отсюда столь длинная задержка при первом запуске Outlook.
Если этот способ по какой-то причине не применим, можно с помощью редактирования реестра заставить Outlook 2016 пропускать определенные типы проверок. Для этого в веткеHKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\AutoDiscover\ нужно создать ключ типа DWORD со значением 1. Возможные имена ключей (имена говорят сами за себя):
- ExcludeHttpsRootDomain
- ExcludeScpLookup
- ExcludeHttpsAutoDiscoverDomain
- ExcludeHttpRedirect
- ExcludeSrvRecord
Т.е. чтобы отключить 2 тип проверки (HTTPS запрос к корневому домену) нужно создать ключ с именемExcludeHttpsRootDomain и значением 1.
Примечание. Аналогичные команды для различных версий Outlook
Outlook 2010:
Outlook 2013:
Outlook 2016:
Outlook 2010:
reg.exe add HKCU\Software\Microsoft\Office\14.0\Outlook\AutoDiscover /v ExcludeHttpsRootDomain /t reg_dword /d 0x1 /f
Outlook 2013:
reg.exe add HKCU\Software\Microsoft\Office\15.0\Outlook\AutoDiscover /v ExcludeHttpsRootDomain /t reg_dword /d 0x1 /f
Outlook 2016:
reg.exe add HKCU\Software\Microsoft\Office\16.0\Outlook\AutoDiscover /v ExcludeHttpsRootDomain /t reg_dword /d 0x1 /f
Аналогично создается параметр с именем ExcludeHttpsAutoDiscoverDomain.
Таким образом, можно заставить Outlook 2016 пропускать все не доступные методы Autodiscover. В результате, при запуске Outlook эта проверка не будет выполняться, и сам процесс Autodiscover и первого запуска Outlook выполняться значительно быстрее.
Комментариев нет:
Отправить комментарий