Почтовые сервера условно можно разделить на 3 типа по сфере применения:
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
- для переписки пользователей;
- для отправки сообщений с сайтов и веб серверов;
- для массовых рассылок.
Один и тот же сервер можно использовать для всех направлений, но это не очень удобно, так как требуется разный дополнительный функционал. Например, для пользователей нужен удобный веб интерфейс и адресная книга. Для отправки с сайта хочется видеть хорошую статистику по отправлениям. А для массовых рассылок очень важен функционал по управлению списками получателей.
Ранее я чаще всего касался темы почтового сервера для переписки пользователей. Сейчас хочу рассказать про сервер для отправки почты с сайта или приложения и частично массовых рассылок. Речь пойдёт про open source проект Postal. Это бесплатный аналог таких сервисов, как Sendgrid, Mailgun, Postmark и т.д. с возможностью установки на своем железе.
Postal умеет:
- Использовать встроенный API для приёма почты к отправке.
- Использовать разные домены и учётные записи для отправки.
- Собирать и отображать в виде графиков статистику по отправке и получению писем.
- Отображать очередь отправки.
- Использовать вебхуки для просмотра информации о доставке в режиме реального времени.
- Отслеживать корректность настроек DNS для добавленных доменов.
- Управлять политиками хранения писем.
- Логировать все этапы создания и доставки письма.
- Искать письма с заданными параметрами по всему почтовому серверу.
- Временно задержать отправку сообщений.
- Пересылать входящую почту на другие smtp серверы или почтовые ящики.
- Пересылать входящую почту в приложение по HTTP в виде JSON.
- Определять спам с помощью SpamAssassin и вирусы с помощью ClamAV.
Почтовый сервер Postal запускается с помощью docker-compose, а настраивается и управляется с помощью набора скриптов. То есть вам не придётся запускать самому контейнеры, указывать переменные и т.д. Достаточно будет передать параметры скрипту, он сам всё настроит и запустит. Процесс установки и настройки описан в документации. Достаточно один раз в консоли всё настроить и запустить. Дальнейшее управление через веб интерфейс. Ходить в консоль больше не придётся. Отдельно нужно будет аккуратно настроить DNS записи, получив информацию о DKIM и SPF записях в веб интерфейсе.
Под капотом у Postal веб сервер Caddy, сервер баз данных MariaDB для хранения информации, RabbitMQ для управления сообщениями между рабочими процессами. Насколько я понял, реализация непосредственно smtp сервера в Postal своя, написанная на Ruby.
Аналогом Postal является Cuttlefish. Более простой сервер для отправки почты с удобным веб интерфейсом. Тоже написан на Ruby, под капотом привычный Postfix.
⇨ Сайт: https://docs.postalserver.io, исходники: https://github.com/postalserver/postal