Вебхуки
Узнаёте, когда это случилось, а не когда спросили.

Зарегистрируйте 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.

email.receivedПришлоemail.repliedПришёл ответemail.sentПринято к отправкеemail.deliveredПолучатель принялemail.delivery_delayedЗадержано, повторemail.failedНе удалось отправитьemail.bouncedВернулосьemail.complainedПомечено как спамemail.suppressedПропущено, адрес в стоп-листеemail.scheduledОтложено на потомemail.queuedИдёт окно отменыemail.cancelledОтозваноemail.openedОткрытоemail.clickedКлик по ссылкеemail.downloadedФайл скачанdomain.verifiedПринимает почтуdomain.sending_changedВердикт отправки изменилсяdomain.deletedУдалёнsuppression.addedАдрес добавленsuppression.removedАдрес снова разрешён

Проверьте доставку

SDK сверяет HMAC за постоянное время и отклоняет доставки старше пяти минут.

Передавайте сырое тело, а не разобранный JSON.
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-хосты отклоняются, а по редиректам мы никогда не переходим.

Каждая попытка в журнале

По каждой видно, что ответил ваш сервер и сколько это заняло.

Советы

Как извлечь максимум

  1. 01

    Сначала ответ, потом работа

    Верните 2xx в пределах пяти секунд, а долгую работу делайте после.

  2. 02

    Отбрасывайте повторные id

    Сохраняйте каждый обработанный id из X-OpenEmail-Delivery и пропускайте повторы.

  3. 03

    Смена с двумя секретами

    Смена сразу заменяет секрет, поэтому проверяйте и по старому, и по новому, пока ваш деплой не выйдет.

Вопросы

Часто спрашивают

Что дальше

Хорошо сочетается с

REST API

Документированный HTTP API с ключами, которые можно выпускать, ограничивать и отзывать.

Типизированные SDK

Сначала клиент на TypeScript, потом остальные.

Смотрите, когда открыли отправленное письмо

Открыли ли отправленное сообщение, когда, сколько раз и по каким его ссылкам перешли. Включено, пока вы не выключите, и честно о показаниях, которых не получить.

Начать

Ваш домен,
ваша почта.

Направьте домен на OpenEmail и читайте его почту в ящике, построенном вокруг него. Бесплатный тариф включает один домен.

Ваши входящие,
на ваших условиях.

Почтовая инфраструктура для бизнеса, ИИ, агентов и личной почты. Создана для масштаба, приватности и контроля. Всё, что должно было быть в почте с первого дня.

© 2026 OpenEmail. Все права защищены.