К содержимому

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

Python SDK: Mail: входящие письма

ctx.mail() доступен в сценарии обработки входящего письма. Содержимое письма и вложений читайте только для разрешённого запуска, не записывайте его в журнал.

Примеры являются фрагментами тела def run(ctx):. Все методы SDK синхронны, await не нужен.

Методы

available

ctx.mail().available() -> bool

Аргументы не нужны.

Результат: bool.

Есть ли в текущем прогоне проверенное письмо. В ручном и пробном запуске возвращается False.

result = ctx.mail().available()

current

ctx.mail().current() -> dict[str, Any]

Аргументы не нужны.

Результат: dict[str, Any].

Тема, отправитель, текст, вложения и срок хранения текущего письма. Служебные заголовки и чужие адресаты не выдаются. Объём текста ограничен 1 MiB, признак text_truncated сообщает о сокращении.

result = ctx.mail().current()

text

ctx.mail().text() -> str

Аргументы не нужны.

Результат: str.

Получить текст письма без HTML.

result = ctx.mail().text()

attachments

ctx.mail().attachments() -> list[dict[str, Any]]

Аргументы не нужны.

Результат: list[dict[str, Any]].

Список проверенных вложений: id, name, mime, size. Ссылки на загрузку требуют прав текущего пространства.

result = ctx.mail().attachments()

document

ctx.mail().document(id) -> Document

Аргумент Тип Обязателен Назначение
id str Да Разрешённый идентификатор вложения/товара по контексту.

Результат: Document. Объект SDK: используйте его методы, не передавайте целиком в emit.

Извлечь текст, листы Excel, таблицы Word или страницы PDF из собственного вложения. Ссылки не открываются автоматически. Не более восьми разборов документов на прогон.

result = ctx.mail().document('attachment-id')

attachment

ctx.mail().attachment(id) -> bytes

Аргумент Тип Обязателен Назначение
id str Да Разрешённый идентификатор вложения/товара по контексту.

Результат: bytes.

Читает вложение частями и возвращает bytes, до 10 MiB. Для текста используйте .decode("utf-8") только при известной кодировке. Для Excel, PDF или Word используйте document(id), чтобы сохранить структуру.

result = ctx.mail().attachment('attachment-id')

Ошибки и контекст выполнения

Все вызовы синхронны. Неверный аргумент или формат данных может вызвать ValueError/TypeError; отказ платформы или недоступность сервиса вызывает RuntimeError. Отсутствие элемента/значения даёт None либо пустой список только там, где это явно описано. Не превращайте любое исключение в пустой успешный результат. Методы внешних сервисов недоступны в преобразовании выгрузки; см. ограничения преобразований и среду.