Перевод статьи: Selfhost Your Own Email Server with Mailcow
Автор оригинала: Abhishek Kumar
Дата публикации: 10 декабря 2024

Хостинг электронной почты — это одна из тех коварных статей расходов, которая часто застает врасплох. Вы покупаете домен, создаете несколько почтовых адресов, и все кажется отличным до тех пор, пока не приходит время продления.
Внезапно вы сталкиваетесь с заоблачными ценами, начисляемыми за каждого пользователя. Это заставило меня задуматься: если я уже самостоятельно хощу почти все основные сервисы, которыми пользуюсь, почему бы не поднять собственный почтовый сервер? ?
Впрочем, в интернете существуют смешанные мнения о самостоятельном хостинге почтового сервера. Некоторые утверждают, что это не лучшая идея, ссылаясь на сложность и потенциальные проблемы с доставляемостью писем.
Другие, в основном любители вроде меня, настроили свои почтовые серверы и остались довольны результатом.
Логическая часть меня колебалась, но любопытный ребенок внутри хотел попробовать в любом случае. В конце концов, разве не лучший способ учиться — это совершать ошибки? Итак, вот как я развернул email-сервер с Mailcow, со своей долей проб и ошибок.
Почему именно Mailcow?
В ходе своего исследования я наткнулся на Mailcow — проект с открытым исходным кодом, предназначенный для упрощения хостинга электронной почты.
Думайте о нем как о предварительно настроенном наборе инструментов для почтового сервера, аккуратно упакованном в Docker-контейнеры.
Mailcow объединяет все ключевые компоненты — Postfix, Dovecot, SOGo (веб-почта) и другие — и предоставляет чистый веб-интерфейс для управления пользователями, доменами и почтовыми ящиками.
Преимущества Mailcow:
Простота использования: Развертывание на Docker означает меньше возни с зависимостями
Современный интерфейс: Веб-панель для управления всем (прощайте, конфиги через терминал)
Поддержка сообщества: Масса руководств, форумов и обсуждений на Reddit, на которые можно опереться
Что понадобится для начала
Прежде чем мы погрузимся в процесс, давайте убедимся, что у вас есть все необходимое:
Аппаратное обеспечение
Вам понадобится сервер с достаточными ресурсами для ваших почтовых нужд. Для личного использования или небольшой установки должно хватить примерно 2 vCPU, 4 ГБ оперативной памяти и 60 ГБ хранилища.
Я рекомендую использовать VPS-провайдеров, таких как DigitalOcean или Linode. Новые пользователи могут получить кредит в $100 на 60 дней.
Программное обеспечение и знания
Чистая установка Linux (например, Ubuntu 20.04 или новее). Избегайте запуска других сервисов на том же сервере
Статический IP-адрес, который не находится в черных списках. Это критически важно для бесперебойной связи с другими почтовыми серверами
Доменное имя для ваших email-адресов
Базовое понимание почтовых протоколов, таких как SMTP, IMAP и POP3
Знакомство с DNS-записями (MX, SPF, DKIM, DMARC)
Все готово? Отлично, приступаем!
Настройка окружения
Для этого руководства я настроил виртуальный частный сервер (VPS) на Linode со следующими характеристиками: 4 ГБ оперативной памяти, 2 vCPU, 80 ГБ хранилища.

В качестве операционной системы я использовал Ubuntu 22.04 LTS. После того как VPS был готов, я приступил к следующим шагам настройки.

Установка Docker
Мы уже множество раз рассказывали о шагах установки Docker и Docker Compose в наших предыдущих статьях, поэтому не буду повторяться здесь.
Если вы новичок в Docker или вам нужно освежить знания, можете обратиться к руководству по установке Docker на Ubuntu. Это просто и быстро подготовит вас к работе.
Открытие необходимых портов
Почтовые серверы полагаются на определенные порты для связи. Убедитесь, что ваш файрвол разрешает следующие:
25 (SMTP)
80 (HTTP)
443 (HTTPS)
587 (SMTP с аутентификацией)
993 (IMAP)
Используйте эту команду для проверки:
netstat -tulpn | grep -E '25|80|443|587|993'

Это обеспечит бесперебойную связь для отправки и получения писем.
Настройка DNS
Правильная настройка DNS критически важна для функционирования электронной почты. Ваш домен должен знать, куда направлять почтовый трафик. Вот краткое руководство:
A-запись: Связывает mail.yourdomain.com с IP-адресом вашего сервера
MX-запись: Направляет входящие письма на mail.yourdomain.com
SPF, DKIM и DMARC: Эти записи аутентифицируют ваши письма и снижают вероятность их попадания в спам
Если вы новичок в DNS, не волнуйтесь — в основном это копирование и вставка.
Для управления моими DNS-записями я использую Cloudflare — это мой выбор для всего, что связано с DNS. Ваша настройка может отличаться; возможно, вы используете панель DNS вашего регистратора доменов или другого провайдера.
Независимо от платформы, шаги остаются схожими, просто адаптируйте их под ваш инструмент.
A-запись
Name: mail
Type: A
Value: IP-адрес вашего сервера

CNAME-записи
autoconfig:
Name: autoconfig
Type: CNAME
Alias: mail.yourdomain.com

autodiscover:
Name: autodiscover
Type: CNAME
Alias: mail.yourdomain.com

MX-запись
Name: @
Type: MX
Priority: 10
Mail Exchange: mail.yourdomain.com

SPF-запись
Name: @
Type: TXT
Value: v=spf1 ip4:your_server_ip -all

DKIM-запись
Ключ мы сгенерируем позже во время настройки Mailcow.
Name: dkim._domainkey
Type: TXT
Value: v=DKIM1;k=rsa;t=s;s=email;p=...
Установка Mailcow
Теперь начинается самое интересное. Прежде всего, клонируем репозиторий Mailcow на ваш сервер:
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized

Генерация конфигурации
Запустите этот скрипт для создания конфигурации вашего сервера:
./generate_config.sh
Он запросит FQDN, то есть ваш домен. Используйте mail.yourdomain.com. Этот шаг также настроит SSL-сертификаты с использованием Let's Encrypt.

Запуск контейнеров
Когда вся подготовительная работа проделана, пора оживить ваш почтовый сервер. Чтобы запустить все, используйте следующую команду:
docker-compose up -d
Вот что происходит: Docker автоматически проверит наличие обновлений для контейнеров Mailcow (если необходимо), а затем загрузит и запустит все: ваш почтовый сервер, веб-интерфейс, спам-фильтры и многое другое — все одной командой.
Флаг -d означает "detached" (отсоединенный), то есть контейнеры будут работать в фоновом режиме, позволяя вам заниматься другими задачами, пока все загружается.
В зависимости от вашей системы и скорости интернета этот шаг может занять несколько минут, так что можете сходить за кофе, пока ваш сервер оживает.

Настройка Mailcow
Теперь, когда ваш сервер Mailcow запущен и работает, пора настроить его для фактической обработки ваших писем. Прежде всего, давайте войдем в административный интерфейс Mailcow.
Для этого перейдите по адресу https://mail.yourdomain.com, вам будет предложено войти, используя учетные данные по умолчанию:
Имя пользователя:
adminПароль:
moohoo

Добавление домена
Обеспечив свой административный доступ, давайте добавим ваш домен. Перейдите на вкладку Configuration в верхней части панели управления в разделе E-Mail.

Здесь вы добавите доменное имя, которое используете для электронной почты (например, yourdomain.com).
Простыми словами, этот шаг, по сути, говорит Mailcow: "Эй, это домен, который мы будем использовать для отправки и получения писем", так что убедитесь, что он правильный.

После того как вы его добавили, нажмите кнопку "Add Domain and restart SOGo", и вы готовы к следующему шагу.

Генерация DKIM-ключей
DKIM (DomainKeys Identified Mail) — это способ подписывать ваши письма, чтобы принимающие серверы могли проверить, что они действительно от вас и не были изменены.
Это важная часть, чтобы ваши письма не попадали в папку со спамом.
Чтобы сгенерировать DKIM-ключи для вашего домена, перейдите в Configuration > ARC/DKIM Keys в Mailcow.
Этот раздел позволяет создать уникальный DKIM-ключ для вашего домена.

После генерации ключа вам нужно скопировать его и добавить как TXT-запись в настройках DNS вашего домена (обсуждалось выше).

Этот шаг может занять некоторое время для распространения, но не волнуйтесь — как только это будет сделано, ваши письма станут гораздо более защищенными.
Создание почтовых ящиков
С настроенным доменом и установленными DKIM-ключами вы готовы начать создавать почтовые ящики.
Здесь вы настроите индивидуальные учетные записи электронной почты для себя, своей команды или всех, кому нужен адрес электронной почты под вашим доменом.
Перейдите в Mail Setup > Mailboxes в панели управления Mailcow. Здесь вы увидите опцию "Add Mailbox".

Просто выберите имя пользователя, назначьте его вашему домену, создайте пароль и нажмите "Add Mailbox".

Вы можете добавить столько почтовых ящиков, сколько вам нужно, будь то для вас самих или для ваших коллег.

После создания почтовых ящиков вы можете протестировать их, войдя в интерфейс веб-почты. Просто перейдите в Apps > Webmail и войдите, используя только что созданную учетную запись электронной почты.

После этого ваша базовая настройка Mailcow готова! Теперь у вас есть полнофункциональный почтовый сервер, работающий на вашем домене, способный отправлять и получать письма.

Подводные камни и важное замечание
Но подождите, здесь все становится интересным. Во время моего тестирования я отправил два письма: одно на мой аккаунт Microsoft Outlook...

...и другое на мой доменный аккаунт, размещенный на ProtonMail.

К моему огорчению, оба письма попали прямиком в папку "Нежелательная почта/Спам"!
После некоторого поиска неисправностей я понял, что это, вероятно, потому, что я еще не настроил DMARC-запись.
Без DMARC провайдеры электронной почты часто помечают сообщения как подозрительные, даже если настройка сервера в остальном выглядит нормально.
Так что, хотя ваша настройка Mailcow может быть технически завершена на этом этапе, впереди еще важная работа.
Тонкая настройка этих конфигураций и проведение дополнительных тестов имеют решающее значение для того, чтобы сделать ваш почтовый сервер действительно надежным.

Заключительные мысли
Когда я впервые начал настраивать свой почтовый сервер, я был поражен тем, как Mailcow сделал все таким доступным.
Благодаря его оптимизированному интерфейсу и предварительно настроенным Docker-контейнерам я не мог не задаться вопросом: почему больше людей не используют это? Казалось, что это идеальное решение, пока я не копнул глубже.
Запуск Mailcow — это не просто запуск нескольких контейнеров. Это совершенно другой уровень ответственности, который связан с управлением вашим IP.
От обеспечения чистоты репутации вашего IP до избежания черных списков и настройки статического IP — все это может стать ошеломляющим очень быстро. Mailcow не может решить эти проблемы за вас, и именно по этим причинам существуют управляемые сервисы.
Для большинства людей нажатие кнопки "зарегистрироваться" на надежном хостинге стоит своей цены ради спокойствия.
Но для любителей поковыряться, как я? Это именно тот вызов, который мы любим. Исследование, поломка вещей и их починка — это половина удовольствия.
Дело не только в наличии собственного почтового сервера, это знание того, как он работает в точности, и удовлетворение от его создания своими руками.
Если вы когда-либо задумывались о хостинге собственной электронной почты, я бы хотел услышать, как это получилось у вас или что вас сдерживает.
Удачи, и пусть ваши письма всегда попадают во входящие! ?
Ссылка на оригинальную статью: Selfhost Your Own Email Server with Mailcow на Linux Handbook
Комментарии (6)

ForestQ
07.12.2025 08:16Кто-то пробовал вместо SoGo прикрутить что-то покрасивее?

aborouhin
07.12.2025 08:16Roundube штатно прикручивается по официальной доке. В целом не должно быть проблем прикрутить и что угодно другое. Только не вместо SoGo, а вместе, т.к. SoGo - это не только
ценный мехплохонькая вебморда, но и CalDAV/CardDAV/ActiveSync.

oller
07.12.2025 08:16Если кто-то решит реально внедрять,
То присмотритесь к carbonio, основанном на Zimbra. Весьма интересный и главное основанный не на докерах продукт. Кто знает минусы докера, тот поймет о чем речь.
Nunter
Ставьте MIAB , работает прекрасно, 2 года полет нормальный,
ps провайдер gpon от МТС, белый ip, кривая PTR запись. 99% писем ходят туда-сюда без проблем.
aborouhin
В MIAB нет SoGo, т.е. почту, контакты и календарь в один клик не настроишь на смартфоне/в Outlook по протоколу Exchange. Если есть удалённые непродвинутые пользователи - это важно.
И LDAP из коробки нет (нагуглился форк с LDAP'ом, но не знаю, насколько он живой и рабочий), что, опять же, если почта - не единственный сервис для одного и того же набора пользователей, - must have. А в mailcow после трёх лет обещаний LDAP завезли, вроде :)
А вообще, чтобы потом лучше понимать устройство этого комбайна, полезно его не в готовом виде брать, а ставить и настаивать по отдельности Postfix, Dovecot, SoGo, веб-морду по вкусу и т.п. Больше затрат времени на старте, но потом легче разбираться, что и где пошло не так.