Thunderbird начиная с версии 3.1 (and 3.0 to some degree) включают в себя функционал автоконфигурации почтового аккаунта. Цель автоконфигурации в создании для пользователей более простого способа настроить соединение клиента с почтовым сервером. В большинстве случаев, пользователь лишь должен загрузить и установить приложение, ввести свое настоящее имя, почтовый адрес и пароль в настройках аккаунта и почтовый клиент полностью готов к работе для получения и отправки писем, настолько безопасной, насколько это возможно .

Способы получения настроек

Thunderbird получает настройки сервера различными способами, каждый из них предназначен для своего случая:

  • ISPDB
    ISPDB - это центральная база данных, которая в настоящий момент принадлежит коммерческой организации Mozilla Messaging, но может быть использована любым клиентом. Она содержит настройки для крупнейших почтовых провайдеров. Мы надеемся что эта база в ближайшем времени будет содержать достаточно информации для автоконфигурирования не менее половины почтовых аккаунтов пользователей.
    Эта база была добавлена из-за нашей уверенности в том, что не все почтовые провайдеры (в том числе Microsoft) сразу же добавят файлы конфигурации для Thunderbird на своих сервера.
  • Конфигурация сервера почтового провайдера
    Почтовые провайдеры могут предоставить информацию о своих настройках для пользователей, настроив автоконфигурацию на своем сервере. <домен>, который просто возвращает статический XML с настройками, как описано ниже. При более сложных настройках, когда, например, логин не отображается в почтовом адресе XML-файл может быть также сгенерирован провайдером. В таких случаях это единственный способ получить автоматическую настройку.
  • Файл конфигурации на жестком диске
    Администраторы могут поместить файл конфигурации в установочную папку Thunderbird. Этот способ предназначен для компаний, которые устанавливают Thunderbird на компютеры своих сотрудников и хотят получить легкую настройку учетной записи без необходимости настраивать конфигурацию почтового сервера. Этот метод не стоит применять в других случаях, потому что обновлять файл конфигурации весьма трудно. Таким образом, публичным провайдерам рекомендуется использовать конфигурации сервера.
  • Подборка наугад
    В том случае, когда другими способами определить настройки не получилось, Thunderbird пытается угадать конфигурацию, пробуя распространенные имена почтовых серверов типа imap.<domain>, smtp.<domain>, mail.<domain> и так далее, и, когда сервер отвечет, проверяет поддержку SSL, STARTTLS и шифрование паролей (CRAM-MD5).
  • Ручная настройка
    Если угадать не получается, пользователь должен ввести настройки вручную. Пользователь может также изменить настройки, даже если они были получены способами описанными выше.

Все механизмы поиска используют домен почтового адреса в качестве основы для поиска. Например, для почтового адреса fred@example.com , поиск выполняется в следующем порядке:

  1. проверка tb-install-dir /isp/example.com.xml на жестком диске
  2. проверка autoconfig.example.com
  3. поиск example.com в базе ISPDB
  4. поиск MX example.com в DNS, и для mx1.mail.hoster.com, пытамся найти hoster.com в базе ISPDB
  5. пытаемся подобрать (imap.example.com, smtp.example.com etc.)

В будущем возможно будет реализован поиск по DNS SRV-записям.

Для себя я создал следующий файл

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?xml version="1.0" encoding="UTF-8"?>
<clientConfig version="1.1">
  <emailProvider id="7srv.net">
    <domain>freshrock.net</domain>
    <domain>freshrock.pp.ua</domain>
    <domain>dimetrius.pp.ua</domain>
    <displayName>7srv mail</displayName>
    <displayShortName>7srv mail</displayShortName>
    <incomingServer type="imap">
      <hostname>send.7srv.net</hostname>
      <port>993</port>
      <socketType>SSL</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>
    <incomingServer type="imap">
      <hostname>send.7srv.net</hostname>
      <port>143</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>
    <incomingServer type="pop3">
      <hostname>send.7srv.net</hostname>
      <port>995</port>
      <socketType>SSL</socketType>
      <authentication>password-cleartext</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>
    <incomingServer type="pop3">
      <hostname>send.7srv.net</hostname>
      <port>110</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-cleartext</authentication>
      <username>%EMAILADDRESS%</username>
    </incomingServer>
    <outgoingServer type="smtp">
      <hostname>send.7srv.net</hostname>
      <port>465</port>
      <socketType>SSL</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </outgoingServer>
    <outgoingServer type="smtp">
      <hostname>send.7srv.net</hostname>
      <port>587</port>
      <socketType>STARTTLS</socketType>
      <authentication>password-encrypted</authentication>
      <username>%EMAILADDRESS%</username>
    </outgoingServer>
    <documentation url="https://dimetrius.net">
      <descr lang="en">Generic page</descr>
      <descr lang="ru">Ищите там контакты администратора</descr>
    </documentation>
  </emailProvider>
</clientConfig>

разместил его по пути /var/www/autoconfig/mail/config-v1.1.xml

В вэб сервере создал виртуальный хост соответствующий
/etc/nginx/conf.d/autoconfig-email.conf

1
2
3
4
5
6
7
server {
	listen 80;
	server_name autoconfig.*;
	location / {
		root /var/www/autoconfig;
	} 
}