Postal: свой почтовый сервер для транзакционных писем
Открытая альтернатива Mailgun и SendGrid для отправки писем из приложений. HTTP-API, SMTP, вебхуки о доставке и панель со статистикой, всё на своём сервере.
Зачем
Каждому веб-приложению нужно отправлять письма: подтверждение регистрации, ссылка для входа, сброс пароля, уведомления. Обычно это решается сервисом вроде Mailgun, Postmark или SendGrid: быстро, надёжно, но за деньги и с чужими правилами. Как только объём растёт или письма содержат то, что нельзя отдавать третьей стороне, встаёт вопрос о своём сервере.
Postal — открытый почтовый сервер именно для этого сценария: не для ящиков людей, а для отправки писем из приложений.
Что внутри
- HTTP-API для отправки: JSON с получателем, темой, телом и вложениями.
- SMTP-сервер, чтобы подключить приложение, которое умеет только SMTP.
- Организации и серверы: один Postal обслуживает несколько проектов с раздельными доменами, ключами и лимитами.
- Вебхуки о событиях: доставлено, отложено, отказ, жалоба на спам, клик по ссылке.
- Входящая почта: письма на ваш домен можно направить в приложение через вебхук.
- Веб-панель с очередью, логами доставки и статистикой по доменам.
- Проверка DNS: Postal показывает, какие записи SPF, DKIM, возвратного пути и MX нужно создать, и подсвечивает, что настроено неверно.
Как поднять
Postal написан на Ruby, живёт в Docker и требует MariaDB. Официальная установка — набор контейнеров и утилита postal, которая делает миграции и создаёт первого администратора. На небольшой виртуальной машине это занимает вечер, большая часть которого уходит на DNS.
postal bootstrap postal.example.com
postal initialize
postal make-user
postal start
Где тонко
Доставляемость — не свойство софта, а свойство IP-адреса и домена. Свежий IP у хостера может быть в чёрных списках после предыдущего владельца. Нужны корректные обратные DNS-записи, SPF, DKIM, DMARC, прогрев объёма, отдельный домен для возвратного пути. Postal помогает это настроить, но репутацию зарабатывать придётся самостоятельно, и это самая долгая часть.
Второе — поддержка. Сервис, который вы арендуете, чинят другие люди. Свой сервер чините вы, включая ночные инциденты с забитой очередью.
Кому подходит
Командам с десятками тысяч писем в месяц и выше, где счёт за сервис уже заметен. Проектам, где содержимое писем не должно покидать инфраструктуру. Тем, кто держит несколько продуктов и хочет один почтовый бэкенд для всех.
Для маленького проекта с сотней писем в день проще взять сервис. Но когда придёт момент переезжать, хорошо знать, что открытая замена существует и работает.
Войти, чтобы оценить материал
Комментарии
Войти, чтобы оставить комментарий