Перейти к содержимому

Mailcow — настраиваем собственный почтовый сервер

Mailcow — это почтовый сервер который разворачивается в docker контейнере и требует минимум настройки. Maicow состоит из Dovecot, ClamAV, Solr, Oletools, Memcached, Redis, MariaDB, Unbound, PHP, Postfix, ACME, Nginx, Rspamd, SOGo, Netfilter.

Для установки mailcow нам сервере должен быть установлен docker + docker-compose. Подробную инструкцию по установке вы может прочитать в данной статье.

Установка

Устанавливать mailcow необходимо от пользователя root. Подключаемся к серверу под root пользователем либо выполняем следующую команду

sudo su

Для установки нам дополнительно потребуется пакет docker-compose-plugin

apt install docker-compose-plugin

Переходим в папку opt и клонируем репозиторий mailcow и переходим в папку mailcow-dockerized

cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized

Запускаем генерацию файла конфигурации

./generate_config.sh

Во время генерации конфигурационного файла у нас будет запрошено доменное имя на котором будет находится система mailcow, советуем вам создать на вашем домене поддомен для почты и указать его.

В случаи если на вашем сервере памяти меньше чем 2.5GB скрипт предложит вам отключить ClamAV

Необходимо будет указать часовой пояс. Для верного указания используем данную таблицу.

Вы также можете выбрать какую версию сборки mailcow устанавливать, стабильную либо тестовую. Мы будет устанавливать стабильную версию.

Available Branches:
- master branch (stable updates) | default, recommended [1]
- nightly branch (unstable updates, testing) | not-production ready [2]
Choose the Branch with it´s number [1/2] 1

Сгенерированный файл конфигурации находится в файле mailcow.conf. При необходимости вы можете его отредактировать.

nano mailcow.conf

Для установки выполняем следующие команды

docker compose pull
docker compose up -d

После установки переходим в админ панель которая находится по адресу https://mail.doman, либо если вы меняли порт в файле конфигурации то добавляем его в конце доменного имени.

Стандартный логин admin, пароль moohoo . После первого входа в обязательном порядке меняем пароль у пользователя admin.

Для добавления нового почтового домена, переходим в в раздел Configuration — Mail Setup и нажимаем на зеленую кнопку + Add Domain

Указываем доменное имя, по желанию добавляем описание и тэг для почты. При добавлении нового доменного имени обязательно нужно перегружать контейнер SOGo, для этого предусмотрена отдельная кнопка Add domain and restart SOGo, нажимаем ее.

Для создания почтовых ящиков, переходим во вкладку Mailboxes и создаем почтовый ящик нажав на кнопку Add mailbox.

После добавления почтового адреса перейдем в webmail и отправим наше первое письмо. Для входа в Webmail вверху нажимаем на App и выбираем Webmail.

Вводим логин, пароль и попадаем в почтовый веб-интерфейс.

Уточнени

Mailcow устанавливается с поддержкой ipv6 и для того чтобы ее отключить необходимо отредактировать файл docker-compose.yml. В данном файле находим строку enable_ipv6: true и заменяем значение true на false

networks:
  mailcow-network:
    [...]
    enable_ipv6: true # <<< set to false
    [...]

DNS записи

Для работ Mailcow вам необходимо добавить следующие DNS записи для вашего домена

# Name              Type       Value
mail                IN A       1.2.3.4
autodiscover        IN CNAME   mail.example.org. (your ${MAILCOW_HOSTNAME})
autoconfig          IN CNAME   mail.example.org. (your ${MAILCOW_HOSTNAME})
@                   IN MX 10   mail.example.org. (your ${MAILCOW_HOSTNAME})

Так же необходимо добавить SPF запись указав в ней IP вашего сервера

@                   IN TXT     "v=spf1 mx a SERVER_IP -all"

И указать DKIM запись которая доступна в панели управления Mailcow в разделе Configuration — Configuration & Details — ARC/DKIM keys

dkim._domainkey     IN TXT     "v=DKIM1; k=rsa; t=s; s=email; p=..."