Дисклеймер: Всё что описано ниже делал в Debian 10. Работает на ура. Всё что вы делаете, делаете на свой страх и риск.

Подсказка: Вы можете использовать клавишу Tab для автозаполнения всех имен файлов и каталогов, поэтому вам не нужно вводить полное имя файла или каталога вручную.

Note: В этом учебнике используется домен “testdomain.com” в качестве примера. Всякий раз, когда в тексте упоминается “testdomain.com”, вы, конечно, должны использовать свой домен вместо этого.

1. Подготовка.

Прежде чем приступить к установке Mailcow, вам необходимо сделать некоторые приготовления, которые в основном влияют на настройки DNS домена, который вы хотите использовать для получения и отправки электронной почты. Для этого выполните следующие действия:

1.1. Установите hostname вашего сервера на “mail“, таким образом чтобы FQDN была вида “mail.testdomain.com“.

1.2. Добавьте в DNS A-запись для субдомена “mail” (mail.testdomain.com) с IP адресом почтового сервера.

1.3. Добавьте в DNS MX запись для вашего домена со значением созданной A-записи из пункта 2 (mail.testdomain.com) с приоритетом 10.

1.4. Привяжите в DNS CNAME запись для субдоменов “autodiscover” и “autoconfig” и установите назначение обоих CNAME записей на mail субдомен созданной A-записи в пункте 2 (mail.testdomain.com)

1.5. Добавьте в DNS TXT запись для вашего домена со значением “v=spf1 mx ~all“.

1.6. Создайте в DNS PTR запись (Reverse DNS) связывающую IP адреса вашего сервера и установленного значения FQDN на сервере (“mail.testdomain.com“).

2. Установка Mailcow.

2.1. Скачиваем программу: “PuTTY”.

2.2. Подключаемся к серверу VPS/vServer по SSH используя PuTTY.

2.3. Обновляем список пакетов:

# apt update

2.4. Обновляем установленные пакеты на Вашем сервере:

# apt upgrade -y

2.5. Установим пакеты необходимые для дальнейшей установки и настройки mailcow:

# apt install curl nano git apt-transport-https ca-certificates gnupg2 software-properties-common -y

2.6. Установить Docker выполнив следующие шаги:

2.6.1. Добавим ключ необходимый установки репозитория Docker:

В Debian:

$ wget -q https://download.docker.com/linux/debian/gpg -O- | apt-key add -

В Ubuntu:

$ wget -q https://download.docker.com/linux/ubuntu/gpg -O- | apt-key add -

2.6.2. Добавляем сам репозиторий Docker:

В Debian:

# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

В Ubuntu:

# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

2.6.3. Обновляем список пакетов:

# apt update

2.6.4. Устанавливаем Docker:

# apt install docker-ce docker-ce-cli -y

2.7. Cкачиваем Docker Compose :

# curl -L https://github.com/docker/compose/releases/download/$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose

2.8. Используя команду дадим права на выполнение Docker Compose:

# chmod +x /usr/local/bin/docker-compose

2.9. Переходим в директорию /opt:

# cd /opt

2.10. Скачиваем Mailcow с master репозитория:

#  git clone https://github.com/mailcow/mailcow-dockerized

2.11. Переходим в директорию mailcow-dockerized:

# cd mailcow-dockerized

2.12. Сгенерируем необходимы Mailcow файл конфигурации. Используем команду:

# ./generate_config.sh

При генерации Вас попросят ввести FQDN имя сервера. Введите FQDN имя вашего сервера (“mail.testdomain.com“) и нажмите Enter. Вы можете пропустить вопросы о временной зоне нажав Enter, потому что правильная временная зона должна быть уже установлена по умолчанию.

2.13. Файл конфигурации теперь создан. Вы можете по желанию изменить его введя команду:

# nano mailcow.conf

Например если у Вас установлен Web сервер и вы хотите поменять порты по умолчанию для mailcow web сервера, то надо поменять (“HTTP_PORT” и “HTTPS_PORT“) . Вы также можете изменить значение параметра “SKIP_LETS_ENCRYPT” на “y” если не хотите что был автоматически сгенерирован SSL сертификат Let’s Encrypt. Если вы изменили файл конфигурации, сохраните его нажав комбинацию клавиш CTRL + X, потом нажмите “Y” и далее нажмите Enter.

2.14. Скачиваем образы необходимые для Mailcow:

# docker-compose pull

2.15. Теперь запускаем Mailcow контейнер выполнив команду:

# docker-compose up -d

2.16. Mailcow автоматически запросит Let’s Encrypt SSL сертификат указанного в Вашем hostname (“acme-mailcow” контейнер), если только эта функция не была явно отключена в файле конфигурации. Теперь вы можете зайти на Mailcow web интерфейс через HTTPS. Для автоматического перенаправления HTTP на HTTPS нужно сделать следующее: Создать файл конфигурации Nginx:

# nano /opt/mailcow-dockerized/data/conf/nginx/redirect.conf

Добавить в него следующий контент:

server {
  root /web;
  listen 80 default_server;
  listen [::]:80 default_server;
  include /etc/nginx/conf.d/server_name.active;
  if ( $request_uri ~* "%0A|%0D" ) { return 403; }
  location ^~ /.well-known/acme-challenge/ {
    allow all;
    default_type "text/plain";
  }
  location / {
    return 301 https://$host$uri$is_args$args;
  }
} 

Сохранить изменения в этом конфигурационном файле нажав CTRL + X, потом нажать “Y”, затем нажать Enter.

2.17. Далее перезапускаем Nginx:

# docker-compose restart nginx-mailcow

Все HTTP запросы будут автоматически перенаправляться на HTTPS.

3. Настройка Mailcow.

3.1. Откройте Mailcow web интерфейс вашего сервера в браузере через HTTPS. Если вы меняли порт web сервера в файле конфигурации, вы должны использовать этот порт для доступа (“https://mail.testdomain.com:4433“).

3.2. Войдите использую данные по умолчанию: Имя пользователя: “admin“, Пароль: “moohoo

3.3. Нажмите “Edit” рядом с “admin” в разделе “Edit administrator details“.

3.4. Измените пароль от административного пользователя. Вы так же можете изменить и имя пользователя, если хотите. После того как всё сделаете, не забудьте нажать кнопку “Save changes”.

3.5. Нажмите “Configuration” в верхнем меню и выберите “Mail Setup” чтобы перейти в настройки почты.

3.6. Выберите вкладку “Domains” . Добавьте свой домен нажав кнопку “Add domain“. В появившемся диалоговом окне введите домен в текстовое поле “Domain” и описание в текстовое поле “Description“. Вы можете изменить остальные настройки (например, максимальное количество возможных почтовых ящиков или квоту почтовых ящиков), но значения по умолчанию должны быть приемлемыми . Далее, нажмите кнопку “Add domain and restart SOGo“.

3.7. Переключитесь на вкладку “Mailboxes” и добавьте новый почтовый ящик нажав кнопку “Add mailbox“. Вам нужно будет ввести следующую информацию:Username: Левая часть в e-mail адресе (до знака “@”) Domain: Домен к которому принадлежит ящик Full name: Имя и Фамилия пользователя почтового ящика Quota (MiB): Ограничение почтового ящика (по умолчанию 3072 MiB) Password: Пароль от почтового ящика user.

Далее нажмите кнопку “Add” чтобы создать почтовый ящик.

3.8. Первоначальная настройка Mailcow завершена. Однако рекомендуется выполнить дополнительные настройки, такие как конфигурация DKIM . Конфигурация DKIM описана в следующем шаге этого руководства. Для получения дополнительной информации очень полезна документация Mailcow documentation.

4. DKIM настройка.

4.1. Войдите в Mailcow web интерфейс и нажмите на “Configuration” в верхнем меню. Выберите “Configuration & Details“.

4.2. Нажмите на “Configuration” вкладку и потом “ARC/DKIM keys

4.3. Введите Ваш домен в текстовом поле “Domain/s” под “Add ARC/DKIM key“.

4.4. Вы можете оставить DKIM selector (текстовое поле “Selector“) вида “dkim” или можете изменить его если хотите.

4.5. Далее выберите “2048 bits” настройки “DKIM key length (bits)” в выпадающем меню.

4.6. Нажмите кнопку “Add” для генерации DKIM ключа для вашего домена.

4.7. Теперь скопируйте значение из текстового поля выше (публичный ключ домена, начинающийся с “v=DKIM1;k=rsa;t=s;s=email;p=”) под “ARC/DKIM keys“.

4.8. В конце, добавьте TXT запись для “dkim._domainkey.testdomain.com” (соответствующее DKIM селектору) в настройках DNS вашего домена и установите ранее скопированное содержимое из текстового поля в качестве значения этой текстовой записи.

5. Использование Webmail Client “SOGo”.

Конечно, вы можете использовать почтовые клиенты, такие как Thunderbird или Outlook, но Mailcow также предлагает свой собственный почтовый клиент. Используя этот почтовый клиент, вы также можете читать свои электронные письма непосредственно в браузере:

5.1. В верхнем меню web интерфейса Mailcow нажмите на “Apps” и выберите “Webmail” или откройте webmail клиент напрямую добавив в адресной строке окончание “/SOGo“.

5.2. Далее войдите в webmail клиент. Введите полностью e-mail адрес в поле “Имя пользователя” и введите соответствующий пароль.

5.3. Вы должный увидеть e-mail письмо во Входящих, о создании персонального календаря, который генерируется автоматически. Теперь вы можете использовать SOGo webmail клиент.

6. Настройка Mail Client (например Thunderbird).

Также вы можете добавить ваши почтовые ящики в традиционные почтовые клиенты такие как: Thunderbird, Outlook или Apple Mail. Обычно всё что Вам нужно было это username (e-mail адрес) и password. Настройки сервера должны подтянуться автоматически. Если это не сработало то используйте следующие настройки сервера:

ServerProtocolServer HostnamePortSSLAuthentication
IncomingIMAPFQDN of the mail server (usually mail.testdomain.com)993SSL/TLSNormal password
OutgoingSMTPFQDN of the mail server (usually mail.testdomain.com)587STARTTLSNormal password