Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

3 года назад
Открыть в
​​Почтовые сервера условно можно разделить на 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