Упрощение статусов электронных писем
Статусы писем — одна из важнейших частей API. Они точно показывают, на каком этапе жизненного цикла находится письмо. Со временем наш изначальный набор статусов разросся хаотично и стал запутанным: в чём разница между error и softfail? Означает ли held то же самое, что и pending? Мы решили навести порядок.
Новые статусы
Теперь у нас 12 понятных статусов, каждый с чётким значением и цветом:
| Статус | Цвет | Описание |
|---|---|---|
| accepted | 🟡 | Принято к доставке |
| scheduled | 🟡 | Запланировано к отправке |
| delivered | 🟢 | Доставлено на почтовый сервер получателя |
| bounced | 🔴 | Окончательно не доставлено (жёсткий отказ) |
| attempted | 🟠 | Попытка доставки не удалась временно |
| failed | 🔴 | Не удалось доставить из-за конкретной ошибки |
| rejected | 🔴 | Сначала принято, затем отклонено |
| loaded | 🔵 | Содержимое письма загружено (отслеживание открытий) |
| clicked | 🟣 | Кликнули по ссылке в письме |
| suppressed | ⚪ | Получатель в списке подавления |
| received | 🟢 | Входящее письмо принято |
| complained | 🔴 | Зарегистрирована жалоба на спам |
Что изменилось по сравнению со старыми статусами
Старые статусы устарели. Вот как они соотносятся с новыми:
| Старый статус (устарел) | Новый статус |
|---|---|
pending | accepted или scheduled |
sent | delivered |
held | (удалён) |
hold_cancelled | (удалён) |
softfail | attempted |
hardfail | bounced |
opened | loaded |
error | failed |
delayed | (удалён) |
processed | (удалён) |
Переименованные статусы стали более описательными: loaded ясно показывает, что мы отслеживаем загрузку содержимого письма (не обязательно человеком), attempted менее двусмысленно, чем softfail, а bounced понятен всем.
Обратная совместимость
Все существующие письма и их доставки были переведены на новые статусы — вы не увидите старых названий статусов в записях писем или доставок, независимо от того, когда они были созданы.
Единственное место, где могут ещё встречаться старые названия статусов — это ранее отправленные события и webhook-запросы, которые были созданы до этого изменения. Эти исторические данные неизменяемы и сохранят исходные значения статусов, с которыми были созданы.
Если в вашем коде есть фильтрация или сопоставление по значениям статусов, обновите интеграции для использования новых названий.
Блог
Последние новости и обновления напрямую от Emailit.
Будьте в курсе последних статей из блога Emailit.