Чеки, коды и сбросы

Почта вашего продукта,
от вызова до результата

Приложение отправляет письмо вызовом, а OpenEmail шлёт его с вашего домена. Каждый вызов записан на ключ, которым он сделан, и у каждой отправки есть результат, который можно прочитать.

Ваш код
templateorder-receipt
idempotency-keyorder_10482
202msg_9f2c7a14Отправлено один раз
Ваш эндпоинтhooks.acme.dev
email.sentmsg_9f2c7a14
email.deliveredmsg_9f2c7a14
email.openedmsg_9f2c7a14

Вызов возвращает ID письма. Каждое событие, которое получает ваш эндпоинт, несёт тот же ID.

С чего это начинается

Как это выглядит сегодня.

Почта уходит из вашего кода

Чеки, коды регистрации и сбросы пароля отправляет ваш бэкенд, их не набирает человек.

После отправки ничего не возвращается

Клиент говорит, что код не пришёл, а записи о доставке, чтобы это проверить, нет.

Один общий ключ и никаких записей о вызовах

Все сервисы отправляют с одним секретом, и нигде не видно, какой вызов не прошёл и когда.

Как это работает

Готово в четыре шага.

  1. 01

    Подтвердите домен

    Опубликуйте записи из настроек, и домен станет зелёным, когда они совпадут.

  2. 02

    Выпустите ограниченный ключ

    Ограничьте ключ адресами и доменами, с которых он может отправлять, а ролью ограничьте то, до чего он дотянется.

  3. 03

    Отправьте письмо вызовом

    Один вызов указывает шаблон, значения и получателя, и повтор не отправит его дважды.

  4. 04

    Примите вебхук, прочитайте журнал

    Ваш эндпоинт получает каждое событие с ID письма, а в журнале видно: доставлено, отказ или ошибка.

На чём это держится

Части, которые делают работу.

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

REST API

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

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.
Типизированные SDK

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

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.
Вебхуки

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

/threads?query=invoice
{ "threads": 12 }
Один и тот же ящик, держит его человек или программа.
Шаблоны

Текст, написанный один раз, с версиями, отправленный много раз: из редактора, из вашего кода или агентом.

ЗнакомствоСчётНапоминание
Привет, Сара, рад знакомству на
Подтверждённый отправитель

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

receipts@stripe.com
SPFDKIMDMARC
проверенный отправитель
Политика DMARC

Начальная запись p=none, показанная для копирования или записанная синхронизацией; ужесточать её за вас никто не станет.

TXT_dmarc.acme.com

v=DMARC1; p=none; rua=…

Необязательнотолько наблюдать
Отслеживание на вашем собственном домене

Отслеживаемые ссылки и пиксель открытия — на выбранном вами поддомене, например links.yourdomain.com, вместо адреса OpenEmail.

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

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

На практике

Каждая часть по шагам.

Четыре коротких страницы проходят весь путь: отправка из кода, чтение журнала вызовов, что произошло после отправки и почта внутри тестового прогона, которая ещё впереди.

Почта из вашего приложения

Отправляйте чеки, коды и ссылки для сброса из своего кода и узнавайте, когда они доходят.

templateorder-receipt
202msg_9f2c7a14
email.sentmsg_9f2c7a14
email.deliveredmsg_9f2c7a14
email.openedmsg_9f2c7a14
Следите за интеграцией

Каждый вызов ключа, каждый отправленный вебхук, с кодом и временем.

oe_live_7f20Сменён
GET/emails20061 ms
POST/emails429send_quota_exceeded
Тестируйте письма регистрации
Скоро

Дайте каждому прогону теста свой адрес и читайте полученную почту.

signup-02@acme.com
Подтвердите ваш email730915
signup-01@acme.com418204
signup-02@acme.com730915
Смотрите, что происходит после отправки

Узнайте, что стало с каждой отправкой, и не пускайте мёртвые адреса в следующую.

[email protected]Пропущено
Доставлено129
Отказ3
Заблокировано[email protected]Придержан

Вопросы

Их задают до регистрации.

Что мешает повтору отправить одно письмо дважды?

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

Видно ли, что произошло после отправки?

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

Есть ли SDK для моего языка?

Чаще всего пока нет. Типизированный клиент сначала для TypeScript, остальные будут позже, поэтому пока любой другой язык обращается напрямую к документированному HTTP API.

Рядом

Другие задачи для того же ящика.

Ваш продукт получает письма,

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

Тикет 8123ticket-8123@in.yourapp.com
Тикет 8124ticket-8124@in.yourapp.com
Комуticket-8123@in.yourapp.com
Отticket-8123@in.yourapp.comТот же адрес
Отдайте ящик программе

Дайте агенту собственный адрес и ключ, ограниченный тем, что ему можно. Он читает, ставит метки, пишет черновики и отправляет, а каждый его вызов записывается.

[email protected]Участник
listThreadsgetThreadsearchMailsendEmail
Всё, что вы отправляете

Напишите один раз как шаблон. Отправьте из редактора, из своего кода или в выбранный день, а потом прочитайте, что было дальше.

Здравствуйте{{firstName}}Omar
Читать новости
[email protected]Отправлено
130Отправлено42Открыто9Клик

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

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

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