Мы запускаем почту. Исходящая транзакционная и массовая отправка через отдельные Postfix экземпляры, входящая через собственные, почтовые ящики на Dovecot, фильтрация и оценка через Rspamd. Идентификация отправителя проверяется с помощью живого DNS, прежде чем сообщение может претендовать на домен клиента.
| Мера | Стоимость | Источник | Измеряемые |
|---|---|---|---|
| Почтовые компоненты в производстве | 5 (Postfix outbound, Postfix bulk, Postfix inbound, Dovecot, Rspamd) | kubectl get deployments -n mail | |
| Пути отправки, разделенные классом репутации | 2 (transactional and bulk, on distinct instances) | kubectl get deployments -n mail | |
| Проверки домена отправителя, выполняемые перед авторизацией отправки | 2 (domain ownership proven by DNS record, and SPF authorisation verified live) | transactional sender-identity resolution in the email service |
Чему здание нас научило
Когда маркетинговое письмо не приходит, инструмент кампании сообщает, что оно отправлено. Это технически верно и совершенно бесполезно. Сообщение было принято для доставки, а затем брошено, отложено или отправлено как спам получающей системой в соответствии с правилами, которые инструмент кампании не может увидеть, а его поставщик не объяснит. Это один из самых распространенных необъяснимых сбоев в цифровом маркетинге, и агентство, которое имеет только инструмент кампании, не имеет возможности расследовать его.
Мы отделяем массовую от транзакционной отправки, чтобы информационная рассылка не могла повредить репутации, от которой зависит сброс пароля. Мы проверяем, с помощью живого DNS во время отправки, действительно ли домен был доказан как принадлежащий арендатору, претендующему на него, и действительно ли его SPF запись авторизует нас — и если этот поиск не удаётся, мы не записываем вердикт, а догадки, потому что догадки здесь посылают письмо, которое не проходит аутентификацию и учит получающие системы не доверять домену.
Однажды мы потеряли класс входящего сообщения, потому что webhook опубликовал данные, закодированные в форме, и обработчик попытался проанализировать его в качестве JSON, вернув веселый 200, отбрасывая содержимое. На этом пути существовали три отдельных тихих падения. Ничего не предупреждало, потому что все сообщали об успехе. Системы, которые терпят неудачу, преуспевая, труднее всего найти, и это причина, по которой мы инструментализуем пути поглощения навязчиво на работе клиента.
Есть ограничение на количество подключений, которое тоже стоит упомянуть, потому что это та подробность, которая появляется только при реальной нагрузке: почтовый сервер разрешает ограниченное количество одновременных подключений на пользователя и адрес, на процесс. Если это число превысить, то все перестанет работать, что выглядит как сбои в аутентификации. Планирование пропускной способности для почты - это настоящая инженерия, и почти никто не выделяет на это бюджет.
Построен с
- Postfix
- Dovecot
- Rspamd
- SPF
- DKIM
- DMARC
- IMAP
- Java
- Spring Boot
Расскажите нам, что вы пытаетесь сделать
Обычно достаточно короткого разговора, чтобы узнать, являемся ли мы подходящими людьми. Если нет, мы скажем вам об этом и покажем вам куда-нибудь лучше.
