Документация

Электронная почта

Входящая электронная почта (IMAP) и исходящая. Сохранение цепочек, разбор вложений.

Канал электронной почты принимает ваши входящие письма и позволяет pipeline отвечать, пересылать или создавать задачи ниже по цепочке.

Модель

Два взаимодополняющих модуля:

  • email_inbound — приём (IMAP)
  • email_outbound — отправка (настроенный оператор или ретрансляция через ваш SMTP)

Они независимы: вы можете использовать только модуль входящей почты (для сортировки без ответа) или только модуль исходящей почты (для отправки уведомлений из pipeline, запущенного иным способом).

Настройка

  1. Параметры → Сервисы → Электронная почта, вкладка Accounts — подключите почтовый ящик IMAP с его учётными данными.
  2. Сопоставьте почтовый ящик с целевым pipeline.
  3. (Опционально) Настройте отправителя (SMTP) для ответа.

Для архитектур, которым необходимо сохранять контроль над своими почтовыми серверами, betool не заменяет ваш MTA: мы читаем и записываем через стандартные IMAP / SMTP.

Что получает pipeline

Для каждого входящего письма создаётся новый exchange со следующими данными:

  • exchange.user_message — тело письма (HTML → нормализованный текст)
  • exchange.email.subject — строка темы
  • exchange.email.from — нормализованный отправитель
  • exchange.email.thread_id — идентификатор цепочки (полезен для многоходового контекста)
  • exchange.email.attachments — список FileMetadata (разобранные вложения)

Вложения

Вложения можно передать в узел file_transform: выделяемый текст PDF (pdf_extract_text, без OCR — отсканированный PDF не даёт текста), чтение книги Excel построчно (xlsx_to_json, xls_to_json), разбиение PDF или рендеринг его в изображения, извлечение архива. Начиная с этого момента ваш агент может работать с ними как с текстом или структурированными данными.

Цепочки и многоходовой контекст

Когда клиент отвечает на предыдущий ответ, betool распознаёт thread_id и восстанавливает историю цепочки в контексте агента. Для проектирования pipeline это прозрачно.

Качество адресов и недоставки

Три узла защищают вашу репутацию отправителя:

  • email_check — проверяет один или несколько адресов перед отправкой: список подавления организации, синтаксис, затем DNS домена (MX, при его отсутствии A/AAAA; «null MX» означает отказ). Он также отмечает, не меняя вердикта, одноразовые адреса, общие ящики (info@…) и риски (опечатка в домене крупного провайдера, дублированное расширение, сервер «catch-all»). Сам он ничего не блокирует: он публикует вердикты и список доставляемых адресов. Никакой SMTP-проверки не выполняется.
  • email_list_clean — квалифицирует целый список (например, из импортированного файла) в три листа: чистые, на проверку, отклонённые, готовые к экспорту через data_to_file. Дедупликация, те же проверки, что и в email_check, и анализ формы адреса. Тарифицируется в кредитах за каждый уникальный адрес, баланс проверяется до обработки.
  • email_bounce_parse — читает уведомление о недоставке, полученное во входящем ящике. Адреса берутся только из структурированных полей уведомления, никогда из свободного текста. Они добавляются в список подавления: постоянная ошибка блокирует с первого случая; временная ошибка блокирует после 3 случаев, на 72 часа.

Последующие отправки (узел email_outbound и tool email.send) автоматически исключают подавленные адреса; если ни одного получателя не остаётся, ничего не отправляется. Снять постоянную блокировку может только администратор.

Известные ограничения

  • Пока нет нативной поддержки MS Exchange EWS (вы можете предоставить Exchange по IMAP).
  • Нет поддержки Microsoft Graph для Office 365 (в дорожной карте).
  • Разбор очень старых писем (вложенный RTF Outlook 2003) может потерять часть форматирования.