bythe.net
← К ленте
Проект

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 помогает это настроить, но репутацию зарабатывать придётся самостоятельно, и это самая долгая часть.

Второе — поддержка. Сервис, который вы арендуете, чинят другие люди. Свой сервер чините вы, включая ночные инциденты с забитой очередью.

Кому подходит

Командам с десятками тысяч писем в месяц и выше, где счёт за сервис уже заметен. Проектам, где содержимое писем не должно покидать инфраструктуру. Тем, кто держит несколько продуктов и хочет один почтовый бэкенд для всех.

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

Войти, чтобы оценить материал

Комментарии

Войти, чтобы оставить комментарий