Email to channel: как любой сервис публикует в командный чат без бота — и почему адрес лучше токена бота
Большая часть того, что команде нужно видеть в течение дня, вводится не коллегой. Это создаётся машиной: монитор доступности заметил медленный endpoint, платёжный процессор получил счёт, хелпдеск открыл тикет, CI-пайплейн упал. Доставка этих сообщений туда, где команда реально общается, называется «интеграцией», и в большинстве чатов она означает бота: создать его, получить токен, сохранить токен, написать или настроить отправителя, поддерживать токен в рабочем состоянии.
InterMIND идёт более коротким путём. У каждого канала есть свой email-адрес. Всё, что умеет отправлять email, может публиковать в канал, а отправлять email умеет почти всё. На стороне InterMIND не нужно создавать ничего, кроме самого адреса, ничего не нужно устанавливать и нет токена, который нужно поддерживать. Этот пост — полное описание механики этого пути, плюс честное сравнение с доставкой через бота по четырём вещам, которые важны на практике: настройка, секреты, гарантии доставки и кто может это отключить.
Сама настройка описана на странице функции Email to Channel; справочник — в документации.
Как это работает
1. Адрес
Хост канала открывает настройки отображения канала (иконка шестерёнки в шапке чата), выбирает Email to channel и нажимает Create address. Результат — приватный адрес вида <token>@in.intermind.com. Только хост может видеть его, ротировать его (New address) или удалить; оба действия вступают в силу немедленно, а старый адрес перестаёт работать в момент создания нового.
У вашего личного Inbox есть адрес того же типа, видимый только вам. Адрес канала предназначен для того, что должна видеть команда; адрес Inbox — для того, что должны видеть только вы.
2. Отправитель
Вставьте адрес туда, где инструмент запрашивает email для уведомлений. Это поле и есть интеграция. Канал оповещений монитора доступности, правило алертов трекера ошибок, «уведомлять о новых тикетах» хелпдеска, квитанции биллинговой системы, уведомления о сборках CI-сервера, отправки из конструктора форм, подписка на рассылку — во всех них есть это поле, и ни один из них не должен знать, что такое InterMIND.
3. Что попадает в канал
Email приходит как обычное сообщение в канал:
- Атрибутируется отправителю. Сообщение несёт имя и адрес отправителя, а не хоста, и переводится для каждого читателя так же, как любое внешнее сообщение.
- Сначала тема. Строка темы становится первой строкой сообщения.
- Текст, без шаблонных вставок. Используется часть в простом тексте; email только в HTML конвертируется в текст. Подписи и цитируемые хвосты ответов отсекаются, так что пересылаемая ветка показывает новый контент, а не всю историю. Тело сообщения ограничено 100 000 символов.
- Вложения сохраняются. Каждое вложение становится файловым сообщением, до 25 МБ на файл.
4. Где это читается
Участники с открытым каналом видят, как сообщение приходит в реальном времени на вебе и десктопе. Участники, которые не смотрят, получают пуш на мобильном. Каждый читает на своём языке, и оно остаётся в истории канала, как и всё остальное. Поток односторонний: ответ в канале не отправляет email обратно отправителю.
Ограничения, прямо о них
- Вложения засчитываются в общий пул хранения команды. Когда хранилище заполнено, текст всё равно приходит, а вложение пропускается с пометкой об этом в сообщении.
- До 30 писем в час на адрес; всё сверх этого в тот же час отбрасывается.
- Письмо на несуществующий адрес отбрасывается тихо: без отскока, без ответа. Угаданный адрес не получает никакого сигнала в ответ.
- Доступно на каждом тарифе.