TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #4446 10.5K
Решил проработать тему с бесплатными почтовыми серверами. Есть ещё 2, которые мне показались интересными. Один из них Mailu. Это практически стандартный почтовый сервер на базе популярных open source компонентов: postfix, dovecot, roundcube или snappymail, rspamd, clamav. Собран он в docker compose.

Админка самописная на python. В истории проекта рассказано, что хотелось как-то освежить и осовременнить стандартный стек почтового сервера. Для этого упаковали всё в контейнеры и заменили PostfixAdmin на новую админку. В принципе, разумный подход. Лично меня в качестве сугубо почтового сервера связка Postfix + Dovecot вполне устраивает. Настраивается просто, работает стабильно, возможности в рамках поддерживаемых протоколов максимальные. Для большей функциональности нужно придумывать свой протокол и почтовый клиент. Бесплатно такого нет. А на базе smtp и imap чего-то большего уже не реализовать.

Из особенностей именно Mailu - конструктор для построения конфигурации. Ответив на простые вопросы на тему имени домена, сервера, каких-то лимитов и т.д. вы получаете docker-compose.yml и .env. Можно их и вручную при желании сделать.

За счёт того, что Mailu полностью упакован в контейнеры и заточен на работу в качестве микросервисного приложения, его можно использовать в Kubernetes. Для этого есть готовый Helm Chart.

По умолчанию Mailu использует SQLite. При желании можно перенести в PostgreSQL или MySQL. Почта хранится в формате maildir.

Я развернул и попробовал Mailu. Установка выглядит так:

1️⃣ Идём на setup.mailu.io и отвечаем на вопросы. В конце получаем готовый конфиг.

2️⃣Переходим в консоль сервера. Ставим Docker и загружаем конфигурацию:

# curl https://get.docker.com | bash -
# mkdir /mailu && cd /mailu
# wget https://setup.mailu.io/2024.06/file/890ef5ad-efc3-444d-834d-abd1424e8741/docker-compose.yml
# wget https://setup.mailu.io/2024.06/file/890ef5ad-efc3-444d-834d-abd1424e8741/mailu.env

3️⃣ Смотрим скачанные файлы, что-то можно подправить, заодно увидеть состав сервера. Там следующий набор контейнеров:

- redis
- nginx
- unbound
- admin (админка)
- dovecot
- postfix
- oletools
- rspamd
- fetchmail
- webmail (roundcube)

Запускаем:

# docker compose -p mailu up -d

4️⃣ После того, как весь стек запустится, создаём учётку администратора:

# docker compose -p mailu exec admin flask mailu admin adminuser mail.example.com PASSWORD

5. Можно идти по имени домена в веб интерфейс и выбирать, логиниться в админку или почтовый клиент. В админке есть русский язык. Выглядит она функционально и современно. Жаль, что она не оформлена отдельно. Я бы её вместо PostfixAdmin с удовольствием использовал.

TLS сертификаты будут получены и настроены автоматически. Для каждого пользователя есть свой личный кабинет, где он может посмотреть настройки для приложений, сменить пароль, включить автоответ, добавить учётку от внешнего сервера, с которого fetchmail будет забирать почту.

Сервер мне максимально понятен и близок по функциональности, потому что используется стек, который я хорошо знаю. Плюс сверху удобная админка. Из минусов лично для меня - Docker. Я почтовые сервера давно настраиваю и знаю, что если его раз настроил, то потом много лет не трогаешь. Он обновляется из пакетов стандартного системного репозитория. Ни масштабировать, ни куда-то переносить между разными окружениями, ни деплоить по 5 раз на дню его не придётся. Живёт он обычно в отдельной виртуалке.

Например, у меня сразу по какой-то причине не заработал веб интерфейс Roundcube. В логах контейнера ошибки:

FastCGI sent in stderr: "PHP message: PHP Warning: stream_socket_client(): Unable to connect to front:10143 (Connection refused)

Надо лезть в контейнер и разбираться, что там с ним не так. Без них было бы проще. А так я сходу даже не увидел, где и как используется этот порт. Судя по всему imap внутри другого контейнера не отвечает, но при этом он нормально опубликован во вне.

В целом сервер неплох. Рекомендую.

⇨ 🌐 Сайт / Исходники

#mailserver
  • 👍 87
  • 👎 4
More from @srv_admin
  1. Sep 23, 2026Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает,…
  2. Sep 23, 2026Контейнеры в одном инструменте, виртуалки — в другом, частное облако — вообще отдельная ис…
  3. Sep 23, 2026Расскажу тем, кто не знает, и напомню тем, кто забыл, как я. Не надо в Proxmox в LXC конте…
  4. Sep 22, 2026Недавно случайно заметил любопытную информацию на тему Proxmox VE и новой функциональности…
  5. Sep 22, 2026✔️ Сети для всех — сообщество для тех, кто развивается в сетевом и системном администриров…
  6. Sep 22, 2026Я ранее уже рассказывал, что приобрёл себе домой полноценную серверную платформу на базе S…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →