MAATRIX / Блог / Mailcow на сервере: частые ошибки и решения

Mailcow на сервере: частые ошибки и решения

Mailcow на сервере: частые ошибки и решения

MAATRIX

Mailcow удобен, но как связка из десятка контейнеров он даёт свой набор типичных проблем: не хватает памяти и падает ClamAV, не выдаётся TLS-сертификат, письма уходят в спам, порт 25 закрыт провайдером, конфликтуют порты 80 и 443. Ниже — разбор этих частых ошибок с готовыми решениями. Для каждой сначала решение, потом причина — чтобы быстро вернуть почту в строй. Большинство проблем Mailcow связаны либо с ресурсами сервера, либо с внешними условиями почты: DNS, PTR и репутацией IP.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Нехватка памяти и падение контейнеров

Контейнеры перезапускаются, ClamAV падает, почта работает с перебоями. Почти всегда причина — нехватка оперативной памяти. Mailcow с антивирусом ClamAV и поисковым Solr требователен, и на сервере с 2–4 ГБ RAM он задыхается. Проверьте потребление памяти и состояние контейнеров:

sudo docker compose ps
free -h

Если память забита и контейнеры в состоянии restarting, у вас два пути. Правильный — добавить RAM: для полноценного Mailcow нужно 6 ГБ и больше. Компромиссный, если памяти временно не поднять, — отключить самые прожорливые компоненты в mailcow.conf: SKIP_CLAMD=y выключает антивирус, SKIP_SOLR=y — полнотекстовый поиск. Это снижает потребление, но вы теряете проверку вложений на вирусы, что для почтового сервера не мелочь. Честное решение — дать серверу достаточно памяти, а не резать защиту.

Не выдаётся TLS-сертификат

Веб-интерфейс открывается с предупреждением о небезопасном соединении, Let's Encrypt не выдал сертификат. Mailcow пытается получить сертификат автоматически, но для этого должны выполняться условия. Первое — DNS: имя сервера (mail.вашдомен.ru) должно указывать на IP сервера A-записью, иначе проверка Let's Encrypt не пройдёт. Проверьте dig mail.вашдомен.ru +short.

Второе — порты 80 и 443 должны быть доступны из интернета, потому что Let's Encrypt проверяет владение доменом через HTTP. Если их занимает другой веб-сервер или закрывает фаервол, выдача провалится. Посмотрите логи контейнера, отвечающего за сертификаты:

sudo docker compose logs acme-mailcow | tail -n 30

Лог прямо укажет причину: DNS не указывает на сервер, порт недоступен, превышен лимит запросов Let's Encrypt. Устраните конкретную причину и дождитесь следующей попытки — Mailcow повторяет автоматически. При превышении лимита Let's Encrypt придётся подождать несколько часов.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS под Mailcow

Конфликт портов 80 и 443

Mailcow не стартует или веб-интерфейс недоступен, в логах — ошибка привязки порта (bind: address already in use). Причина в том, что порты 80 и 443 уже занимает другой веб-сервер на хосте — nginx или Apache, установленный ранее. Mailcow хочет эти порты под свой обратный прокси и не может их получить.

Есть два решения. Простое — освободить порты, остановив и отключив конфликтующий веб-сервер, если он не нужен: sudo systemctl disable --now nginx. Если же на сервере должны работать и другие сайты, настройте Mailcow на нестандартные внутренние порты в mailcow.conf (параметры HTTP_PORT, HTTPS_PORT) и поставьте перед ним ваш основной обратный прокси, который будет направлять почтовый домен в Mailcow. Второй путь сложнее, но позволяет держать почту и сайты на одном сервере. Для чистого почтового сервера проще отдать порты Mailcow целиком.

Письма уходят в спам

Mailcow работает, ящики созданы, но письма получатели находят в спаме. Внутреннюю часть Mailcow настраивает сам, поэтому причина почти всегда во внешних условиях. Проверьте по порядку. PTR-запись: IP сервера должен разрешаться в имя через обратный DNS, это настраивает провайдер. SPF, DKIM, DMARC: убедитесь, что вы прописали в DNS все записи, которые Mailcow показывает в разделе конфигурации домена, особенно DKIM-ключ — точно, без лишних пробелов.

Отправьте тестовое письмо на сервис оценки (mail-tester) — он покажет по пунктам, что не так. Частая ошибка: DKIM-запись скопирована с переносом строки или неверным селектором, из-за чего подпись не проходит. Ещё частая причина — «грязный» или свежий IP без репутации. Mailcow не может исправить репутацию IP, это зона провайдера. Если IP изначально в чёрных списках, запросите чистый адрес.

Порт 25 заблокирован, письма не уходят

Входящая почта работает, а исходящая застревает: письма копятся, в логах Postfix-контейнера таймауты на порт 25. Классическая причина — провайдер блокирует исходящий порт 25 для борьбы со спамом. Проверьте с хоста доступность порта наружу:

telnet gmail-smtp-in.l.google.com 25

Если соединения нет — порт закрыт. Отправляющему почтовому серверу нужен открытый исходящий 25 для прямой доставки, и обойти это внутри Mailcow нельзя. Решение внешнее: у одних провайдеров порт открывают по запросу в поддержку после подтверждения легитимности, у других он открыт сразу. Это стоит выяснять до аренды сервера под почту. Mailcow берёт на себя всю сложность почтового стека, но открытый порт 25, чистый IP и PTR обеспечивает провайдер. В MAATRIX можно арендовать VPS под Mailcow с открытым портом 25, чистым IP и PTR в России, США или Великобритании и оплатить картой РФ, по СБП, криптой или токеном MAAT — иностранная карта не требуется.

Обновление сломало работу

После update.sh что-то перестало работать. Первое правило обновлений Mailcow: всегда делать бэкап встроенным скриптом перед обновлением. Если обновление прошло неудачно, у вас есть точка отката. Посмотрите, какие контейнеры не поднялись, и их логи через docker compose logs. Частая причина — прерванное скачивание образов или нехватка места на диске под новые образы: проверьте df -h. Иногда помогает повторный docker compose pull и docker compose up -d. Не пропускайте много версий подряд — обновляйтесь регулярно, тогда каждый шаг небольшой и предсказуемый. Отдельно про диагностику в целом: почти на любой вопрос «почему не работает» в Mailcow отвечает лог конкретного контейнера. Команда docker compose logs имя-контейнера показывает, что происходит внутри Postfix, Dovecot, Rspamd или acme, а docker compose ps — кто из них здоров, а кто перезапускается. Приучитесь начинать разбор именно с этих двух команд, а не с гадания: контейнерная архитектура тем и удобна, что каждая часть изолирована и её состояние видно отдельно. Это превращает диагностику из хаоса в последовательную проверку компонентов.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS под Mailcow

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Почему падает ClamAV в Mailcow?

Нехватка памяти. ClamAV прожорлив, и на сервере меньше 6 ГБ RAM он падает. Добавьте память или временно отключите его через SKIP_CLAMD=y, но это лишает почту проверки вложений на вирусы.

Не выдаётся сертификат Let's Encrypt, что делать?

Проверьте, что A-запись имени сервера указывает на IP и что порты 80/443 доступны из интернета. Смотрите лог контейнера acme-mailcow — он назовёт конкретную причину.

Mailcow конфликтует с nginx на сервере, как быть?

Порты 80/443 заняты. Освободите их, отключив лишний веб-сервер, либо переведите Mailcow на внутренние порты и поставьте перед ним свой обратный прокси, если нужны и другие сайты.

Письма из Mailcow идут в спам, хотя всё настроено?

Проверьте PTR, точность DKIM-записи в DNS и репутацию IP через mail-tester. Внутреннюю часть Mailcow делает сам, но PTR и чистый IP зависят от провайдера.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.