Почтовые сервера условно можно разделить на 3 типа по сфере применения:
◽ для переписки пользователей;
◽ для отправки сообщений с сайтов и веб серверов;
◽ для массовых рассылок.
Один и тот же сервер можно использовать для всех направлений, но это не очень удобно, так как требуется разный дополнительный функционал. Например, для пользователей нужен удобный веб интерфейс и адресная книга. Для отправки с сайта хочется видеть хорошую статистику по отправлениям. А для массовых рассылок очень важен функционал по управлению списками получателей.
Ранее я чаще всего касался темы почтового сервера для переписки пользователей. Сейчас хочу рассказать про сервер для отправки почты с сайта или приложения и частично массовых рассылок. Речь пойдёт про 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.
⇨ Сайт / Исходники
#mailserver
>>Click here to continue<<
