Автоматическая настройка outlook exchange
Разберем процесс создания инфраструктуры для автоматической настройки почтовых клиентов. Для корректной работы Autodiscover нужен комплексный подход, так как у разных почтовых клиентов свои требования.
1. Microsoft Outlook
С DNS все просто — создаем А- (или CNAME-) и SRV-записи. Пример таких записей в bind:
autodiscover IN A 111.111.111.111
* где 111.111.111.111 — IP-адрес на наш веб-сервер, который будет возвращать документ XML.
Веб-сервер
В качестве примера, настройку выполним на веб-сервере NGINX, который работает на Linux. Если он не установлен, выполняем инсталляцию.
а) если сервер под CentOS / Red Hat:
yum install epel-release
yum install nginx
б) если сервер под Debian / Ubuntu:
apt-get install nginx
После разрешаем автозапуск и стартуем сервис:
systemctl enable nginx
systemctl start nginx
Затем создаем виртуальный домен:
error_page 405 =200 $uri;
>
Проверяем корректность настройки:
Если ошибок нет, перечитываем конфиг:
systemctl reload nginx
Создаем каталог, в котором будет наш XML:
mkdir -p /usr/share/nginx/html/autodiscover/autodiscover
Создадим сам XML:
* где из основных параметров на нужны:
- Type — тип протокола, используя который мы будем подключаться к почтовой системе.
- Server — сервер для подключения. Для каждого типа протокола может быть задан свой сервер или один и тот же.
- Port — порт, на котором слушает сервис. Как правило, для
- IMAP: 143, 993.
- POP: 110, 995.
- SMTP: 25, 465, 587.
Все адреса
Наш файл конфигурации рассчитан только на настройку одного адреса. Теперь нужно настроить его на обслуживание любого email. Для этого необходимо написать скрипт, например, на php и немного донастроить сервер.
PHP и php-fpm
Установим php и php-fpm, после разрешаем автозапуск php-fpm и стартуем его:
а) если сервер под CentOS / Red Hat:
yum install php php-fpm
systemctl enable php-fpm
systemctl start php-fpm
б) если сервер под Debian / Ubuntu:
apt-get install php php-fpm
systemctl enable php7.2-fpm
systemctl start php7.2-fpm
* где 7.2 — версия установленной php (проверяется командой php -v).
Настроим php-fpm
а) если сервер под CentOS / Red Hat:
systemctl restart php-fpm
б) если сервер под Debian / Ubuntu:
systemctl restart php7.2-fpm
NGINX
Внесем настройки в наш виртуальный домен:
.
error_page 405 =200 $uri;\.php$ set $root_path /usr/share/nginx/html/autodiscover;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>
.* мы добавили обработку скриптов php с помощью php-fpm.
Перезапускаем наш сервер:
systemctl reload nginx
Готовим скрипт
Создадим скрипт php:
<?php
//get raw POST data so we can extract the email address
$data = file_get_contents("php://input");
preg_match("/\<EMailAddress\>(.*?)\<\/EMailAddress\>/", $data, $matches);Переадресация с xml на php
Теперь настроим, чтобы наш веб-сервер переводил запросы xml на наш скрипт php. Открываем настройку нашего виртуального домена:
.
location = /autodiscover/autodiscover.xml rewrite ^/autodiscover/autodiscover.xml$ /autodiscover/autodiscover.php;
>
.systemctl reload nginx
Теперь можно открывать Outlook и проверять автонастройку для других почтовых ящиков.
2. Mozilla Thunderbird
Также, как с Outlook, необходимо настроить DNS и веб-сервер.
создаем А-запись (или CNAME). Пример в bind:
autoconfig IN A 111.111.111.111
* где 111.111.111.111 — IP-адрес на наш веб-сервер, который будет возвращать документ XML.
Веб-сервер
Настраивая autodiscovery для Microsoft, мы уже настроили веб-сервер NGINX. Теперь нужно добавить виртуальный домен и создать соответствующий документ.
Откроем уже созданный нами файл конфигурации:
. и добавим в него:
Создаем каталог для хранения XML:
mkdir -p /usr/share/nginx/html/autodiscover/mail
- hostname — имя сервера для подключения. Для каждого типа протокола может быть задан свой сервер или один и тот же.
- port — порт, на котором слушает сервис. Как правило, для
- IMAP: 143, 993.
- POP: 110, 995.
- SMTP: 25, 465, 587.
- plain — без шифрования.
- SSL — SSL или TLS шифрование на отдельном порту (465, 993, 995).
- STARTTLS — TLS шифрование через STARTTLS на обычном порту.
3. DNS SRV
Это метод, призванный быть универсальным. Более того, он описан стандартом RFC.
Суть заключается в создании SRV-записей в DNS. Данная запись создается по следующему синтаксису:
- <имя службы> — имя сервиса (например, imap).
- <протокол> — сетевой протокол (TCP, UDP, TLS).
- <приоритет> — порядок, в котором идет учет строки.
- <вес> — если приоритеты совпадают у служб, порядок определяется по их весу.
- <порт> — порт, на котором слушает служба.
- <хост> — имя сервера, на который будет вести запись.
Пример записей для настройки почты:
* в данном примере мы отдаем приоритет более защищенным средствам подключения (smtps, imaps, pop3s).
Зашифрованное подключение к службам электронной почты недоступно
Автообнаружение не может обработать указанный адрес электронной почты. Доступ можно получить только к почтовым ящикам и контактам.
Причина
Эта проблема может возникать по одной из следующих причин:
- На странице Автоматическая настройка учетной записи мастера добавления учетной записи в Outlook был указан неправильный адрес электронной почты.
- Для текущей версии Outlook не установлены обновления, необходимые для автоматического подключения к службе Exchange Online.
- Запись CNAME службы автообнаружения для вашего домена не существует или настроена неправильно.
- Для организаций, которые используют синхронизацию Active Directory, неправильно настроены атрибуты mail, mailNickname, displayName и proxyAddresses для синхронизированного пользователя локальной службы Active Directory.
В статье рассматриваются приложения Outlook 2016, Outlook 2013 и Exchange Online. Справку по подключению к Exchange Online с мобильного устройства см. в статье Настройка и использование Office 365 на телефоне или планшете. Для получения помощи в подключении Outlook к сторонней службе электронной почты свяжитесь с ее поставщиком.
Решение
Рекомендуемый способ
Способ 1. Запустите помощник по поддержке и восстановлению Office 365
Используйте Мне нужна помощь в настройке электронной почты Office 365 в Outlook диагностике в помощнике по поддержке и восстановлению (SaRA). Нажмите Выполнить при появлении запроса на запуск программного обеспечения.
Эта диагностика выполняет автоматические проверки и возвращает возможные решения, которые вы можете использовать для устранения обнаруженных проблем.
Дополнительные способы
Если используется личный домен
Если со службой Office 365 вы используете личный домен и способ 1 не помог устранить проблему, воспользуйтесь указанными ниже способами в приведенном порядке. Если первый способ не устраняет ошибку, перейдите к следующему способу.
Способ 2. Выполните обновление до последней версии Outlook.
Сначала введите правильный адрес электронной почты и пароль на странице автоматической настройки учетной записи мастера добавления учетной записи в Outlook.
Если вы используете Outlook 2010 или более раннюю версию, выполните обновление до последней версии Outlook. Дополнительную информацию см. в статье Скачивание и установка на компьютер пакета Office с помощью подписки Office 365 для бизнеса.
Дополнительные сведения настройке Outlook под Office 365 см. на следующих ресурсах:
Если этот способ не помог устранить проблему, воспользуйтесь способом 3.
Способ 3. Убедитесь в правильности настройки записи CNAME службы автообнаружения
Обязательно наличие правильно настроенной записи CNAME службы автообнаружения. Настоятельно рекомендуется при подключении к почтовым ящикам Exchange Online с помощью приложения Outlook настроить службу автообнаружения Microsoft Exchange. Для подключения Outlook в Exchange Online требуется настройка записи службы автообнаружения и других связанных с этим записей DNS. Чтобы подтвердить, что записи настроены правильно, администраторы могут воспользоваться мастером устранения связанных с доменом неполадок в службе Office 365 или средством Microsoft Remote Connectivity Analyzer.
Воспользуйтесь мастером устранения связанных с доменом неполадок в службе Office 365
Для использования мастера устранения связанных с доменом неполадок в службе Office 365 выполните следующие действия.
Воспользуйтесь Анализатором удаленного подключения Microsoft
Чтобы с помощью средства Microsoft Remote Connectivity Analyzer проверить, правильно ли работает служба автообнаружения Microsoft Exchange, выполните следующие действия.
В веб-браузере перейдите на сайт средства Microsoft Remote Connectivity Analyzer:
Заполните все необходимые поля формы и нажмите кнопку Выполнить проверку.
После завершения теста проверьте, успешно ли он прошел.
Если он прошел успешно, служба автообнаружения работает правильно.
Если проверка не прошла, убедитесь в правильности настроек службы автообнаружения. Дополнительные сведения см. на следующих ресурсах:
Если у вас используется гибридное развертывание службы Exchange, необходимо выполнить настройку записей публичных DNS для ваших существующих SMTP-доменов, которые будут ссылаться на локальный сервер службы Exchange. Дополнительную информацию см. в статье Предварительные условия для гибридного развертывания.
Способ 4. Убедитесь в правильности настроек пользовательских атрибутов Active Directory
Если вы используете гибридное развертывание Exchange, то с помощью команды Get-RemoteMailbox вы можете определить, правильно ли установлены следующие атрибуты для пользователя. Наиболее распространенные проблемы связаны с тем, что для одного или нескольких атрибутов не указано значение. Ниже приводится пример правильных атрибутов.
Для обновления этих атрибутов вы можете воспользоваться командлетом Set-RemoteMailbox.
После назначения правильных значений для этих атрибутов необходимо выполнить принудительную синхронизацию каталогов, а затем попробовать настроить учетную запись электронной почты пользователя в Outlook.
Если не используется личный домен
Способ 2. Воспользуйтесь мастером добавления новых учетных записей Outlook
Этот способ подойдет пользователям, которые не планируют использовать личный или именной домен. В этом случае также работает служба автообнаружения. Если местоположение почтового сервера изменится, Outlook обновится с помощью нового расположения вашего почтового сервера.
Дополнительная информация
Майкрософт не поддерживает ручную настройку профиля в Outlook для подключения к почтовым ящикам в Exchange Online службы Office 365. Тем не менее, мы можем помочь вам выполнить другие задачи, такие как настройка DNS и записей автообнаружения (как уже упоминалось в способе 2). Это позволит вам настроить учетную запись с помощью одного из поддерживаемых способов.
После установки в организации Exchange Server 2016 или Exchange 2019 необходимо настроить Exchange для потока обработки почты и клиентского доступа. Если этого не сделать, отправлять почту в Интернет будет невозможно, а внешние клиенты (например, Microsoft Outlook и устройства с Exchange ActiveSync) не смогут подключаться к организации Exchange.
Действия, описанные в этом разделе, предполагают базовой развертывание Exchange с одним сайтом Active Directory и пространством имен SMTP.
Дополнительные сведения о задачах управления, связанных с потоком обработки почты, клиентами и устройствами, см. в статьях Поток обработки почты и конвейер транспорта и Клиенты и мобильные устройства.
Что нужно знать перед началом работы
Предполагаемое время выполнения задачи: 50 минут.
Вы можете получать предупреждения о сертификате при подключении к веб-сайту Центра администрирования Exchange, пока не настроите сертификат SSL на сервере почтовых ящиков. Как это сделать, будет показано далее в этом разделе.
Сведения о том, как открыть Центр администрирования Exchange, см. в статье Центр администрирования Exchange в Exchange Server. Сведения о том, как открыть командную консоль Exchange, см. в статье Запуск командной консоли Exchange.
Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования Exchange.
Возникли проблемы? Попросите помощи на форумах Exchange. Перейти на форумы можно по следующим ссылкам: Exchange Server, Exchange Online или Exchange Online Protection.
Шаг 1. Создание соединителя отправки в Интернет
Чтобы отправлять почту в Интернет, необходимо создать соединитель отправки на сервере почтовых ящиков. Инструкции см. в статье Создание соединителя отправки в Exchange Server для отправки почты в Интернет.
По умолчанию при установке Exchange создается соединитель получения под названием "Интерфейсный сервер <ServerName>_ по умолчанию". Этот соединитель принимает анонимные подключения SMTP с внешних серверов. Вам не требуется проводить какую-либо дополнительную настройку, если это вас устраивает. Если вы хотите ограничить входящие подключения с внешних серверов, измените соединитель получения Интерфейсный сервер <Mailbox server> по умолчанию на сервере почтовых ящиков. Дополнительные сведения см. в разделе Стандартные соединители получения, создаваемые при установке.
Шаг 2. Добавление дополнительных обслуживаемых доменов
Чтобы получать из Интернета почту для того или иного домена, в общедоступной службе DNS необходимо создать запись ресурса MX для этого домена. Каждая запись MX должна разрешаться в сервер с выходом в Интернет, получающий электронную почту для вашей организации.
Шаг 3. Настройка политики электронных адресов по умолчанию
Для выполнения этих процедур необходимы соответствующие разрешения. Сведения о необходимых разрешениях см. в статье запись "Политики адресов электронной почты" в статье Разрешения для электронных адресов и адресных книг.
Если вы добавили обслуживаемый домен на предыдущем этапе и хотите, чтобы он добавился для каждого получателя в организации, необходимо обновить политику электронных адресов по умолчанию. Инструкции см. в статьях Изменение политик адресов электронной почты и Применение политик адресов электронной почты к получателям.
Рекомендуем настроить имя участника-пользователя, которое совпадает с основным адресом электронной почты каждого пользователя. Если не указать имя участника-пользователя, совпадающее с электронным адресом пользователя, пользователь будет вынужден вручную указать домен и имя пользователя или имя участника-пользователя в дополнение к электронному адресу. Если его UPN соответствует электронному адресу, Outlook в Интернете (прежнее название — Outlook Web App), ActiveSync и Outlook автоматически сопоставят электронный адрес с UPN.
Шаг 4. Настройка внешних URL-адресов
Для выполнения этих процедур необходимы соответствующие разрешения. Сведения о необходимых разрешениях см. в разделе "Настройки виртуального каталога <Service>" в статье Разрешения клиентов и мобильных устройств.
Прежде чем клиенты смогут подключаться к новому серверу из Интернета, необходимо настроить внешние домены (или URL-адреса) в виртуальных каталогах во внешних службах клиентского доступа на сервере почтовых ящиков, а затем в общедоступных записях DNS. Ниже описана настройка одного и того же внешнего домена для внешних URL-адресов каждого виртуального каталога. Если вы хотите настроить другие внешние домены для одного или нескольких внешних URL-адресов виртуальных каталогов, необходимо настроить внешние URL-адреса вручную. Дополнительные сведения см. в статье Параметры по умолчанию для виртуальных каталогов Exchange.
Откройте Центр администрирования Exchange и выберите Серверы > Серверы, укажите ваш сервер почтовых ящиков с выходом в Интернет, к которому будут подключаться клиенты, а затем нажмите Изменить .
В открывшемся окне свойств сервера Exchange Server выберите вкладку Мобильный Outlook и настройте следующие параметры:
По завершении нажмите кнопку Сохранить.
Выберите Серверы > Виртуальные каталоги, а затем нажмите Настроить домен внешнего доступа .
В открывшемся окне Настроить домен внешнего доступа настройте следующие параметры:
Выберите серверы почтовых ящиков для использования с внешним URL-адресом. Нажмите Добавить
В открывшемся диалоговом окне Выбор сервера выберите нужный сервер почтовых ящиков и нажмите Добавить. Добавив все нужные серверы почтовых ящиков, нажмите кнопку ОК.
Вернитесь к разделу Серверы > Виртуальные каталоги, выберите owa (веб-сайт по умолчанию) на нужном сервере, а затем нажмите Изменить .
Откроется окно owa (веб-сайт по умолчанию). На вкладке Общие введите в поле Внешний URL-адрес следующие сведения:
По завершении нажмите кнопку Сохранить.
Вернитесь к разделу Серверы > Виртуальные каталоги, выберите ecp (веб-сайт по умолчанию) на нужном сервере, а затем нажмите Изменить .
Настроив внешний URL-адрес в виртуальных каталогах служб клиентского доступа на сервере почтовых ящиков, настройте общедоступные записи DNS для Outlook в Интернете, а также для автообнаружения и потока обработки почты. Эти записи должны указывать на внешний IP-адрес или имя FQDN сервера почтовых ящиков, подключенного к Интернету. Кроме того, они должны использовать доступные извне полные доменные имена, настроенные на сервере почтовых ящиков. В представленной ниже таблице описываются записи DNS, которые необходимо создать для обеспечения потока обработки почты и подключения внешних клиентов.
Как убедиться, что все получилось?
Чтобы убедиться, что вы успешно настроили внешние URL-адреса в виртуальных каталогах служб клиентского доступа на сервере почтовых ящиков, выполните указанные ниже действия.
В Центре администрирования Exchange выберите Серверы > Виртуальные каталоги.
В поле Выберите сервер укажите сервер почтовых ящиков с выходом в Интернет.
Выберите виртуальный каталог, а затем в области сведений проверьте, содержит ли поле Внешний URL-адрес правильное полное доменное имя, как в приведенной ниже таблице.
Чтобы убедиться, что общедоступные записи DNS успешно настроены, выполните указанные ниже действия.
Откройте командную строку и запустите программу nslookup.exe .
Измените значение на DNS-сервер, который может обращаться с запросами к общедоступной зоне DNS.
Используя nslookup , найдите запись для всех созданных полных доменных имен. Убедитесь, что для каждого FQDN возвращается правильное значение.
Используя nslookup , введите set type=mx и найдите обслуживаемый домен, добавленный на шаге 1. Убедитесь, что возвращенное значение соответствует FQDN сервера почтовых ящиков.
Шаг 5. Настройка внутренних URL-адресов
Для выполнения этих процедур необходимы соответствующие разрешения. Сведения о необходимых разрешениях см. в разделе "Настройки виртуального каталога <Service>" в статье Разрешения клиентов и мобильных устройств.
Чтобы клиенты могли подключаться к новому серверу из внутренней сети, необходимо настроить внутренние домены (или URL-адреса) в виртуальных каталогах служб клиентского доступа (внешних) на сервере почтовых ящиков, а затем настроить внутренние записи DNS.
Выполнив описанные ниже действия, вы сможете выбрать, нужно ли пользователям использовать один и тот же URL-адрес для доступа к серверу Exchange Server в интрасети и Интернете или разные URL-адреса. Это решение зависит от текущей схемы адресации или от схемы, которую вы хотите внедрить. Если внедряется новая схема адресации, рекомендуем использовать один и тот же URL-адрес для внутреннего и внешнего серверов. В случае применения одного URL-адреса пользователям будет проще получить доступ к серверу Exchange Server, так как им достаточно будет запомнить один адрес.
Независимо от вашего решения необходимо настроить частную зону DNS для настраиваемого адресного пространства. Дополнительные сведения об администрировании зон DNS см. в статье Администрирование DNS-сервера.
Дополнительные сведения о внутренних и внешних URL-адресах в виртуальных каталогах см. в статьях Параметры по умолчанию для виртуальных каталогов Exchange и Управление виртуальным каталогом.
Настройка внутреннего URL-адреса, совпадающего с внешним
Откройте консоль управления Exchange на сервере почтовых ящиков.
Сохраните имя узла сервера почтовых ящиков в переменной, которая будет использоваться на следующем этапе. Пример: Mailbox01.
Выполните все приведенные ниже команды в командной консоли Exchange, чтобы задать внутренние URL-адреса, соответствующие внешнему URL-адресу виртуального каталога.
Настроив внутренний URL-адрес в виртуальных каталогах сервера почтовых ящиков, настройте частные записи DNS для Outlook в Интернете и других возможностей подключения. В зависимости от конфигурации нужно будет настроить эти записи так, чтобы они указывали на внутренний или внешний IP-адрес либо имя FQDN сервера почтовых ящиков. В представленной ниже таблице приведены примеры рекомендуемых записей DNS, которые следует создать.
Как убедиться, что все получилось?
Чтобы убедиться, что вы успешно настроили внутренний URL-адрес в виртуальных каталогах сервера почтовых ящиков, сделайте следующее:
В Центре администрирования Exchange выберите Серверы > Виртуальные каталоги.
В поле Выберите сервер укажите сервер почтовых ящиков с выходом в Интернет.
Выберите виртуальный каталог и нажмите Изменить .
Проверьте, указаны ли в поле Внутренний URL-адрес правильное полное доменное имя и служба, как показано в приведенной ниже таблице.
Чтобы убедиться в том, что частные записи DNS успешно настроены, выполните следующие действия:
Откройте командную строку и выполните nslookup.exe .
Измените значение на DNS-сервер, который может обращаться с запросами к частной зоне DNS.
Используя nslookup , найдите запись для всех созданных полных доменных имен. Убедитесь, что для каждого FQDN возвращается правильное значение.
Настройка внутреннего URL-адреса, отличающегося от внешнего
Откройте Центр администрирования Exchange и выберите Серверы > Виртуальные каталоги.
На сервере почтовых ящиков с выходом в Интернет выберите нужный виртуальный каталог и нажмите Изменить .
Когда закончите, нажмите кнопку Сохранить.
Повторите предыдущие действия для каждого виртуального каталога, который требуется изменить.
Внутренние URL-адреса виртуальных каталогов ECP и OWA должны быть одинаковыми. В виртуальном каталоге автообнаружения невозможно задать внутренний URL-адрес.
Настроив внутренний URL-адрес в виртуальных каталогах сервера почтовых ящиков, настройте частные записи DNS для Outlook в Интернете и других подключений. В зависимости от конфигурации нужно будет настроить эти записи так, чтобы они указывали на внутренний или внешний IP-адрес либо имя FQDN сервера почтовых ящиков. В представленной ниже таблице приведены примеры рекомендуемых записей DNS, которые следует создать.
Как убедиться, что все получилось?
Чтобы убедиться, что вы успешно настроили внутренние URL-адреса в виртуальных каталогах служб клиентского доступа на сервере почтовых ящиков, выполните указанные ниже действия.
В Центре администрирования Exchange выберите Серверы > Виртуальные каталоги.
В поле Выберите сервер укажите сервер почтовых ящиков с выходом в Интернет.
Выберите виртуальный каталог и нажмите Изменить .
Чтобы убедиться, что частные записи DNS успешно настроены, выполните указанные ниже действия.
Откройте командную строку и запустите программу nslookup.exe .
Измените значение на DNS-сервер, который может обращаться с запросами к частной зоне DNS.
Используя nslookup , найдите запись для всех созданных полных доменных имен. Убедитесь, что для каждого FQDN возвращается правильное значение.
Шаг 6. Настройка SSL-сертификата
Некоторые службы, такие как мобильный Outlook и Exchange ActiveSync, требуют настройки сертификатов на сервере Exchange Server. Ниже показано, как настроить SSL-сертификат от стороннего центра сертификации (ЦС).
Сертификат следует запросить у стороннего ЦС, чтобы клиенты автоматически ему доверяли. Дополнительные сведения см. в статье Рекомендации для сертификатов Exchange.
Как минимум, следует выбрать SMTP и IIS.
При появлении предупреждения Перезаписать существующий SMTP-сертификат по умолчанию? нажмите кнопку Да.
Как убедиться, что все получилось?
Чтобы убедиться, что вы успешно добавили новый сертификат, выполните указанные ниже действия.
В Центре администрирования Exchange последовательно выберите пункты Серверы > Сертификаты.
Выберите новый сертификат и затем в области сведений убедитесь, что выполнены следующие условия:
значение параметра Состояние равно Действительный;
в поле Назначен службам указаны как минимум IIS и SMTP.
Как убедиться, что это сработало?
Чтобы убедиться, что вы настроили поток обработки почты и внешний клиентский доступ, выполните указанные ниже действия.
Создайте новый профиль в приложении Outlook и/или на устройстве ActiveSync. Убедитесь, что новый профиль успешно создается в Outlook или на мобильном устройстве.
Когда возникает необходимость настроить почтовую систему для компании в первую очередь на ум приходит использовать решения от Microsoft — Exchange и Outlook. К сожалению, эти решения не обеспечивают достаточной гибкости и многим не подходят по разным параметрам.
Хорошо, но что же использовать вместо них, ведь хочется такой же красивой и прозрачной для пользователя работы с почтой, которую обеспечивает протокол MAPI? Небольшая перетасовычка и на свет появляется вполне очевидное и на самом деле безальтернативное решение — IMAP. IMAP, слава Богу, в современном мире в той или иной степени поддерживают чуть ли не все почтовые клиенты, так что выбор у нас огромен. Но если присмотреться внимательней, то он сужается до весьма скромного множества из одного-двух наименований.
- Для начала — кросплатформенность. Глупо использовать стандартизированные технологии, но привязываться изначально к одной ОС, тогда уж проще сразу купить Exchange и навсегда забыть о какой-либо гибкости разворачиваемой инфраструктуры.
- Полная поддержка IMAP и IMAP ACL. Второй пункт важен, т.к. без него нельзя будет организовать ни общих папок, ни передачу прав на различные операции с ящиком другим пользователям, а без этого в корпоративной почтовой системе никак.
- Возможность централизованной настройки клиента через сервер.
- Гибкость настроек клиента и удобство в использовании.
В дебрях конфигов
Теперь перейдём непосредственно к Thunderbird. Все настройки Thunderbird хранит в виде столь любимых многими текстовых конфигурационных файлов, правда, в несколько необычной манере. Конфиги Thunderbird представляют из себя скрипты на JavaScript. И Thunderbird не просто читает их, а исполняет. Из этого следует весьма забавный вывод: можно использовать множество возможностей JS для динамического формирования нужных параметров. Конечно, поддержка JS в Thunderbird далеко не полная, но нам её хватит с лихвой.
Основной конфигурационный файл Thunderbird хранится в профиле пользователя и называется prefs.js. На всякий случай: профиль Thunderbird находится либо в домашней папке (для Linux), либо в AppData (для Windows), либо в папке программы (для Thunderbird Portable).
Формат указанного файла весьма простой, он весь состоит из строчек вида
Я думаю понятно, что подобные строчки задают некоторое значение указанным в качестве первого аргумента параметрам.Однако редактировать prefs.js вручную нельзя, поскольку он должен исправляться только самим Thunderbird. При этом непосредственно в программе есть встроенный редактор конфигурации, который позволяет получить доступ ко всем опциям из prefs.js. Попасть в него можно зайдя в меню Инструменты->Настройки. , в открывшемся окне перейдя в раздел Дополнительные, затем выбрав вкладку Основные и нажав на ней кнопку Редактор настроек.
Этот редактор вам ещё очень пригодится, так что обязательно его отыщите. Хотя реально что-то изменять через него вам вряд ли понадобится, зато он крайне полезен для поиска названий нужных опций.
Mozilla AutoConfig (aka Mission Control)
Вот мы и подошли к самому интересному. Как я уже сказал, напрямую редактировать prefs.js нельзя, но это и не проблема, поскольку в Thunderbird есть ещё один уровень настроек, с помощью которого можно как угодно управлять пользовательскими параметрами из prefs.js.
Этот интригующий механизм также полностью основан на JavaScript скриптах, но в этот раз вы уже вольны изменять что угодно и как угодно, в том числе используя все доступные инструменты и возможности JavaScript как языка программирования.
Для включения дополнительного механизма настройки надо немного поменять файлы в установочной директории Thunderbird. Для начала необходимо добавить две строчки в конец файла greprefs/all.js, найти который можно в /usr/lib/thunderbird-xxx/ в Ubuntu Linux или рядом с Thunderbird.exe в Windows. Вот эти строчки:
Вторая содержит собственно имя конфигурационного файла, который должен использовать Thunderbird, а первая отвечает за его шифрование. Обычно шифровать ничего не нужно, поэтому значение первого параметра лучше выставлять равным 0.Теперь необходимо создать указанный файл thunderbird.cfg. Располагаться он должен в той же папке, что и основной исполняемый файл Thunderbird. Узнать, где находится Thunderbird в Linux можно командой
Ну а в Windows вы можете заглянуть, например, в свойства ярлыка.Что может располагаться в thunderbird.cfg? Любой JavaScript код, который сможет выполнить Thunderbird. Однако нам-то надо работать с опциями настройки, для этого можно использовать следующие функции:
Есть ещё парочка доступных функций, но они вам вряд ли понадобятся. Самая полная статья, которую я нашёл на эту тему, находится здесь.- pref — устанавливает значение для указанного параметра. При этом пользователь сможет поменять это значение после запуска Thunderbird, однако если вы не измените thunderbird.cfg, то при следующем перезапуске эта функция выполниться снова и снова изменит значение параметра.
- defaultPref — устанавливает для указанного параметра значение по умолчанию. Может оказаться полезной при создании нового профиля.
- lockPref — самая полезная, пожалуй, функция. Устанавливает значение для некоторого параметра и блокирует его, таким образом запрещая пользователю этот параметр изменять.
- unlockPref — как не трудно догадаться, разблокирует ранее заблокированный параметр.
- getPref — возвращает текущее значение указанного параметра.
- clearPref — сбрасывает значение указанного параметра.
- getenv — возвращает текущее значение указанной системной переменной.
Вот простейший пример файла thunderbird.cfg, который немного «тюнит» Thunderbird:
Файл подробно комментирован, так что надеюсь вы разберётесь, что к чему. Блок try нужен для перехвата ошибок, лучше его не убирайте (иначе в случае чего Thunderbird просто не запустится). Кроме того, все параметры и нужные значения для них для своей конкретной инфраструктуры я скопировал из упоминавшегося редактора конфигурации, настроив предварительно всё вручную обычным способом. Рекомендую всегда именно так и делать, иначе вы будете долго гадать какое значение нужно указать, например, для параметра mail.server.server.socketType в вашем случае.То есть алгоритм действия по поиску нужных параметров и указанию их значений примерно такой: сначала настраиваем что-то на чистом Thunderbird вручную, а потом копируем все нужные настройки из редактора в самом Thunderbird в скрипт автоконфигурации.
Теперь достаточно при установке Thunderbird положить этот скрипт в папочку с исполняемым файлом (и не забыть добавить две строчки в all.js!), и все ваши пользователи, которые будут открывать Thunderbird на этом компьютере, получат автоматически настроенные параметры своих аккаунтов, а так же подключённую адресную LDAP книгу с сотрудниками организации.Для проверки работоспособности скрипта можно заглянуть всё в тот же редактор настроек Thunderbird. В нём статус параметров, для которых была выполнена функция lockPref(), должен быть «заблокировано». Если это не так — значит вы где-то ошиблись и ваш скрипт не работает.
Кстати, обратите внимание, хитрый трюк с указанием в качестве localfoldersserver сервера IMAP позволяет отключить локальные папки в клиенте. Это бывает немаловажно в организации с внутренним IMAP сервером и блондинками, которые не понимают, что локальные папки на то и локальные, что хранятся в профиле пользователя на конкретном компьютере, а не на сервере.
Как я уже сказал, вы можете использовать практически все возможности стандартного JavaScript в скрипте автоконфигурации, плюс можете получать значение системных переменных. Это уже очень неплохо, и пытливые администраторы уже наверно стали прикидывать варианты автоматического обновления скриптов thunderbird.cfg на локальных компьютерах. К счастью, изобретать велосипед вовсе не обязательно.
Настройка через сервер
В механизм автонастройки Thunderbird встроена возможность загрузки конфигурационного файла с сервера по указанному URL. Воспользоваться ей очень просто — необходимо в файле, на который ссылается опция general.config.filename из all.js (то есть в нашем случае thunderbird.cfg) указать всего две строчки:
Ну и конечно по указанному адресу должен находится нужный вам конфигурационный файл вроде того, что приведён в предыдущем разделе. Зачем нужен второй параметр — не совсем понятно, но судя по названию лучше его не включать.Итого: мы получили достаточно эффективный механизм централизованной настройки Thunderbird. Однако ему явно не хватает гибкости, поскольку JavaScript, увы, многого не умеет. Например — обращаться к внешним источникам данных, как то SQL базы или LDAP каталоги. Соответственно провести тонкую настройку клиента под конкретного пользователя у вас вряд ли получится.
Осталось дело за малым — для тонкой настройки под конкретного пользователя конфигурационного скрипта, а следовательно и Thunderbird, необходимо, чтобы клиент каким-то образом сообщал серверу хотя бы имя пользователя. Thunderbird его может легко вычислить с помощью уже описанной функции getent, ну а передать его можно прямо в URL в виде GET-переменной. Но тут возникает одна проблема: Thunderbird почему-то упорно игнорирует URL с GET-переменными в параметре autoadmin.global_config_url. Хотя это конечно тоже не проблема, ведь с помощью mod_rewrite мы можем на стороне сервера преобразовать обычный URL некоторого вида в URL c GET-переменными и передать уже этот URL скрипту.
Чтобы долго не объяснять, перейдём к практике. Конечный содержимое моего файла thunderbird.cfg, лежащего рядом с бинарником самого Thunderbird, имеет такой вот вид:
Таким образом запущенный из под учётной записи пользователя malamut Thunderbird за настройками полезет по адресу
Таким образом запросы по URL вида
преобразуются в запросы по URL вида
Осталось только написать Perl скрипт, который будет брать из GET-переменных имя пользователя и выдавать соответствующий конфигурационный файл для Thunderbird.Вот пример такого скрипта:
Некоторые комментарии чуть ниже. А пока при обращении по адресу
получим примерно следующий вывод, сгенерированный приведённым скриптом:
Вот и всё, мы получили файл конфигурации для Thunderbird, сгенерированный Perl скриптом на сервере.Самое великолепное в этом то, что с помощью описанного механизма можно неограниченно гибко управлять любыми настройками Thunderbird, включая настройки плагинов, которые также подчиняются менеджеру конфигурации. Единственное, что не подвластно такому централизованному конфигурированию — это пользовательский интерфейс, то есть расположение панелек и их размер.
Настройка аккаунтов через конфигурационный файл
Сначала, на всякий случай, рассмотрим основной принцип настроек аккаунтов в Thunderbird, поскольку он не совсем очевиден.
Все множественные данные одного типа Thunderbird нумерует и различает по номерам. Если нужно добавить новый аккаунт, почтовый адрес, SMTP сервер или ещё что, то Thunderbird во внутренних настройках присвоит новому объекту первый доступный номер. Поэтому когда вы добавляете какие-то объекты через скрипт автоконфигурации, то присваивайте номера, заведомо бОльшие, чем уже могут быть в клиенте. Иначе вы можете переписать случайно настройки какого-то пользовательского почтового ящика, что вряд ли понравится пользователю. Исключение — основной корпоративный аккаунт, который имеет номер 1.
Для того, чтобы привязать множественные записи к какому-то объекту, например, несколько почтовых адресов отправки к аккаунту, Thunderbird использует простые списки, разделённые запятой. Например:
Thunderbird поддерживает множественные аккаунты (account), кроме того, у каждого аккаунта может быть несколько почтовых идентификаторов (identity). Названия всех опций, относящихся непосредственно к аккаунту, начинаются с mail.account.accountN, где N — внутренний номер аккаунта. Названия всех опций, относящихся к почтовым идентификаторам, начинаются соответственно с mail.identity.idN, где N — внутренний номер идентификатора.Список всех аккаунтов Thunderbird хранится в переменной mail.accountmanager.accounts. Кстати, порядок перечисления аккаунтов в этой переменной определяет порядок их следования в левой панели навигации пользовательского интерфейса Thunderbird. Если удалить аккаунт из этого списка, то он пропадёт из Thunderbird, даже не смотря на то, что все его настройки могут остаться на месте.
Список почтовых идентификаторов для аккаунта N указывается в переменной mail.account.accountN.identities. IMAP сервер привязывается к аккаунту с помощью переменной mail.account.accountN.server, SMTP же сервер привязывается к почтовому идентификатору с помощью переменной mail.identity.idN.smtpServer.
В общем, перед тем, как что-то настраивать, крайне рекомендуется разобраться в том, что от чего зависит и что с чем связано.
Полезные трюки для скрипта автоконфигурации
Во-первых, обратите внимание на JavaScript код, который добавляет переменные в список себе подобных. Например, вот так можно добавить аккаунт к уже существующим:
Этот трюк необходим для того, чтобы скрипт автоконфигурации не уничтожал настройки дополнительных аккаунтов, подключённых пользователем вручную. Именно поэтому нужный аккаунт нужно добавлять в список уже существующих, а не просто перезаписывать весь список.Кроме того, на уровне Perl скрипта можно организовать какую угодно обработку в зависимости от переданного имени пользователя. Я добавил для примера функцию, которая подключает аккаунт с Yandex по его имени, и добавил вызов этой функции для себя. Теперь мне потребуется всего лишь закрыть Thunderbird и открыть его заново, затем ввести свой пароль и всё, мой Yandex аккаунт будет подключён! Такую технику очень удобно использовать для удалённого управления почтовыми клиентами отдельных пользователей.
Например, звонит вам босс какого-нибудь филиала и просит подключить аккаунт yandex своей тёщи. Вы, вместо того, чтобы высылать туда штатного специалиста, или долго объяснять, куда нажать, или отвлекать от работы и подключаться удалённо, просто добавляете три строчки в скрипт автоконфигурации и просите перезагрузить почтовый клиент и ввести свой пароль. Такой метод настройки также гарантирует, что пользователь ничего не сломает в параметрах, поскольку они все заблокированы.
Ну и наконец немаловажным является тот факт, что однажды заблокированные параметры прописываются в настройки локального клиента. То есть если вы поставите Thunderbird на ноубук шефа, подключите его в корпоративной сети с целью его автоматической конфигурации, а потом шеф с ним куда-то уедет, то его настройки в клиенте всё равно сохраняться. Даже не смотря на то, что сервер автоконфигурации не будет доступен из того места, где он будет подключаться к интернету.
Дополнительные возможности Thunderbird
Конфигурировать Thunderbird вы теперь умеете. Однако не забудьте на радостях, что Thunderbird выгодно отличается от всех других почтовых клиентов тем, что поддерживает расширения. И этих расширений доступно великое множество на все случаи жизни.
Например, для управления совместным доступом к почтовым ящикам с помощью IMAP ACL можно использовать соответствующее расширение. Для добавления календаря в Thunderbird отлично подойдёт Lightning, который, кстати, тоже можно очень гибко настроить через описанный выше механизм.
Для того, чтобы установить расширение для всех пользователей компьютера, можно сначала поставить его штатным способом, а потом скопировать соответствующую папочку из своего профиля в каталог extensions/, который можно найти в основном установочном каталоге Thunderbird.
Кроме того, можно создавать профили по умолчанию для новых пользователей. Для этого используется каталог default/profile. В профиль можно положить, например, файл настроек пользовательского интерфейса или файл с сертификатами.
Комментарии и полезные дополнения к материалу всячески приветствуются!
Читайте также: