Перейти к содержимому

Email Inbox (приём писем как уведомлений)

Email Inbox — это «почтовый ящик», у которого вместо вашего IMAP — канал Notifly. Создав ящик, вы получаете уникальный email-адрес: всё, что на него приходит, превращается в обычное уведомление с заголовком письма и его телом и доставляется во все ваши клиенты (web, Android, desktop) как любое другое push-сообщение.

Это удобно, когда внешняя система умеет только email и научить её ходить в HTTP — слишком дорого:

  • алёрты от хостингов, биллингов, RBL и регистраторов;
  • уведомления от CI/CD, системы бэкапов, сторонних SaaS;
  • transactional email от вашего же бекенда (заказы, регистрации) без отдельного канала push;
  • алёрты от старых железных мониторингов, которые умеют только SMTP.
SMTP-отправитель ──► <local>+<alias>@<домен>
Yandex Cloud Mail Trigger
Cloud Function notifly-email
│ 1. достать alias из адреса (To / X-Original-To / Delivered-To)
│ 2. найти EmailInbox в YDB по alias
│ 3. Subject → title, plain-body → message
INSERT messages + push в WebSocket
Все ваши клиенты получают уведомление
  • Маршрутизация — по subaddress-части +alias в локальной части адреса (postmaster+abc123@your-mail.yandexcloud.net) или по выделенному домену.
  • Хранение — таблица email_inboxes в YDB с уникальным индексом по alias.
  • Push — то же самое, что у обычного POST /message: моментальный фрейм по WebSocket плюс запись в БД для последующих GET /message.
  1. Откройте app.notifly.ruEmail Inbox.
  2. Нажмите «Создать ящик», заполните:
    • Название — для отображения, например «Алёрты Reg.ru».
    • Канал — куда складывать пришедшие письма как уведомления.
  3. В таблице появится сгенерированный email-адрес — это и есть аутентификация. Скопируйте его в настройки внешнего сервиса.
Окно терминала
curl -X POST "$NOTIFLY_URL/email-inbox" \
-H "Content-Type: application/json" \
-H "X-Gotify-Key: <client-token>" \
-d '{
"name": "Алёрты Reg.ru",
"appId": 12345
}'

В ответе придёт сам объект ящика с заполненным emailAddress:

{
"id": 17,
"appId": 12345,
"appName": "Operations",
"name": "Алёрты Reg.ru",
"alias": "a3f9c2",
"emailAddress": "postmaster+a3f9c2@your-mail.yandexcloud.net",
"created": "2026-04-30T10:11:12Z",
"lastUsed": null
}

Если у вас настроен MCP-сервер Notifly, просто попросите:

Создай Email Inbox для канала «Operations» с названием «Алёрты Reg.ru» и пришли мне получившийся адрес.

Любой SMTP-клиент шлёт письмо на полученный адрес — никаких заголовков авторизации не нужно (alias сам и есть секрет). Самый минимальный пример:

Окно терминала
# msmtp / mailx
echo "База за ночь не обновилась — проверьте репликацию." \
| mail -s "[ALERT] backups: lag > 24h" \
"postmaster+a3f9c2@your-mail.yandexcloud.net"

Из Python:

import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg["To"] = "postmaster+a3f9c2@your-mail.yandexcloud.net"
msg["From"] = "alerts@example.com"
msg["Subject"] = "[ALERT] backups: lag > 24h"
msg.set_content("База за ночь не обновилась — проверьте репликацию.")
with smtplib.SMTP("smtp.example.com", 587) as s:
s.starttls()
s.login("user", "pass")
s.send_message(msg)
Поле уведомленияОткуда берётся
titleЗаголовок письма (Subject:)
messageТекстовое тело письма (text/plain-часть)
priorityПриоритет канала по умолчанию
dateВремя прихода письма в Cloud Function

HTML-часть, если есть, отбрасывается: уведомление — это короткий plain-text. Если письмо чисто HTML, в текст уйдёт текстовая ветка multipart/alternative, если она есть, иначе — пустая строка.

Метод и путьАвторизацияНазначение
GET /email-inboxclient-tokenсписок ящиков
POST /email-inboxclient-token (write)создание
PUT /email-inbox/:idclient-token (write)переименовать / сменить канал
DELETE /email-inbox/:idclient-token (write)удалить

POST принимает EmailInboxParams{name, appId}. В ответе всегда возвращается полный объект EmailInbox, включая публичный emailAddress (его удобно сразу копировать в настройки внешней системы).

  • Только plain-text — HTML-вёрстка пропускается, аттачменты не сохраняются.
  • Размер письма — в пределах лимитов Yandex Cloud Mail Trigger.
  • Адрес чувствителен к регистру alias (хранится lower-case).
  • При высокой нагрузке (>1 письма/сек на ящик) уведомления будут приходить пачками — Cloud Function масштабируется, но Notifly не дедуплицирует уведомления автоматически.