Вебхуки
Узнаёте, когда это случилось, а не когда спросили.
Зарегистрируйте https-эндпоинт и получайте подписанный POST, когда письмо приходит, уходит, возвращается или его открывают.
Коротко
Что такое почтовый вебхук?
Вебхук представляет собой HTTP-запрос, который сервис отправляет на ваш URL, когда что-то происходит, чтобы ваш код реагировал, а не опрашивал. В почте это приход письма, его отправка, возврат или открытие.
20
событий для подписки
10
эндпоинтов на ящик
5
попыток на событие, не больше
100
неудачных событий подряд отключают эндпоинт
Как это работает
Любой способ отправки, одно событие
Редактор, отправка, запланированная на вторник, и API вызывают email.sent. Планирование сначала вызывает email.scheduled.
Подписано, а проверка за вами
Каждый POST несёт HMAC-SHA-256 от метки времени и сырого тела. Проверяйте байты в том виде, в каком они пришли, и отклоняйте всё старше 300 секунд.
Повтор, только если он может помочь
Таймауты, 408, 425, 429 и 5xx повторяются через 1, 5 и 25 минут, затем через 2 часа. Любой другой 4xx окончателен, а 410 отключает эндпоинт.
Двадцать событий в трёх семействах
Если ничего не выбрать, вы подпишетесь на все события писем, кроме email.replied.
Проверьте доставку
SDK сверяет HMAC за постоянное время и отклоняет доставки старше пяти минут.
import { verifyWebhookSignature } from '@openemail/sdk' export default async (request: Request) => { const event = await verifyWebhookSignature({ payload: await request.text(), headers: request.headers, secret: process.env.OPENEMAIL_WEBHOOK_SECRET! }) console.log(event.type, event.data) return new Response(null, { status: 204 })}Что вы получаете
Уже в продукте
Пять секунд, параллельно
Эндпоинты вызываются одновременно, поэтому даже десять укладываются в пять секунд.
Только публичный https
Частные и loopback-хосты отклоняются, а по редиректам мы никогда не переходим.
Каждая попытка в журнале
По каждой видно, что ответил ваш сервер и сколько это заняло.
Советы
Как извлечь максимум
- 01
Сначала ответ, потом работа
Верните 2xx в пределах пяти секунд, а долгую работу делайте после.
- 02
Отбрасывайте повторные id
Сохраняйте каждый обработанный id из X-OpenEmail-Delivery и пропускайте повторы.
- 03
Смена с двумя секретами
Смена сразу заменяет секрет, поэтому проверяйте и по старому, и по новому, пока ваш деплой не выйдет.
Вопросы
Часто спрашивают
Что дальше
Хорошо сочетается с
Начать
Ваш домен,
ваша почта.
Направьте домен на OpenEmail и читайте его почту в ящике, построенном вокруг него. Бесплатный тариф включает один домен.