N8n nodes imap

N8n Nodes IMAP: Полное руководство по автоматизации работы с электронной почтой

N8n — это платформа с открытым исходным кодом для автоматизации рабочих процессов (workflow automation), которая использует визуальный редактор на основе узлов (nodes). Узел IMAP (Internet Message Access Protocol) является одним из ключевых инструментов в экосистеме n8n для взаимодействия с почтовыми серверами. Его основная функция — инициирование рабочих процессов на основе входящих электронных писем, а также чтение и обработка данных из почтовых ящиков без необходимости постоянного опроса (polling) в классическом понимании, так как n8n использует триггерный механизм.

Принцип работы и архитектура узла IMAP

Узел IMAP в n8n реализован как триггерный узел (Trigger Node). Это означает, что он запускает выполнение рабочего процесса (workflow) при наступлении определенного события — в данном случае, при появлении нового письма в указанном почтовом ящике. В отличие от узлов, которые выполняют действия (Action Nodes), триггерный узел находится в начале workflow и ждет события.

Технически, при активации workflow n8n устанавливает долгоживущее соединение с IMAP-сервером, используя указанные учетные данные. Он отслеживает выбранный почтовый ящик (например, INBOX) и подписывается на уведомления о новых письмах. Когда на сервер поступает новое сообщение, IMAP-сервер уведомляет клиента (узел n8n), который затем инициирует выполнение рабочего процесса, передавая все данные письма в виде JSON-объекта последующим узлам.

Настройка узла IMAP: Параметры и конфигурация

Для корректной работы узла IMAP необходимо заполнить ряд обязательных и дополнительных параметров. Конфигурация выполняется в интерфейсе узла.

Основные параметры подключения

    • Host: Адрес IMAP-сервера (например, imap.gmail.com, imap.yandex.ru, imap.mail.ru).
    • Port: Порт для подключения. Обычно это 993 для SSL/TLS или 143 для незашифрованного соединения (не рекомендуется).
    • User: Полный адрес электронной почты.
    • Password: Пароль приложения (App Password) или специально сгенерированный пароль для доступа. Для Gmail и других современных почтовых сервисов использование обычного пароля часто недоступно из-за двухфакторной аутентификации.
    • Secure: Опция использования SSL/TLS. Почти всегда должна быть включена.

    Критические параметры обработки писем

    • Mailbox Name: Название папки для отслеживания. По умолчанию «INBOX». Можно указать другие папки, например, «Spam», «Sent», или пользовательские.
    • Действие после получения (Post-Processing Action): Определяет, что сделать с письмом после того, как workflow его обработал. Это ключевая настройка для управления потоком писем.
    Параметры действия после получения (Post-Processing Action)
    Значение Описание Сценарий использования
    MARK_AS_READ Пометить письмо как прочитанное. Стандартный сценарий, чтобы не обрабатывать одно письмо дважды. Письмо остается в папке.
    MOVE_TO_MAILBOX Переместить письмо в указанную папку. Организация входящих: перемещение обработанных заявок в папку «Processed», писем от определенного отправителя — в отдельную папку.
    DELETE Удалить письмо. Обработка спама или временных уведомлений, которые не нужно хранить.
    NOTHING Не предпринимать никаких действий. Отладка, или если последующие узлы сами управляют состоянием писем.

    Структура выходных данных (JSON) узла IMAP

    При срабатывании триггера узел IMAP формирует комплексный JSON-объект, содержащий все детали письма. Этот объект передается следующему узлу в workflow. Понимание его структуры критически важно для извлечения нужных данных.

    • messageId: Уникальный идентификатор письма.
    • date: Дата и время получения письма.
    • subject: Тема письма.
    • from: Массив объектов с информацией об отправителе (address, name).
    • to: Массив объектов с информацией о получателях.
    • cc / bcc: Массивы объектов для копий.
    • text: Текстовая (plain text) версия тела письма.
    • html: HTML-версия тела письма.
    • attachments: Массив вложений. Каждый элемент содержит:
      • filename: Имя файла.
      • mimeType: MIME-тип файла (например, application/pdf).
      • size: Размер в байтах.
      • content: Данные файла в кодировке base64.

    Практические сценарии использования (Use Cases)

    Создание тикета в CRM или трекере задач из письма

    Workflow: IMAP Trigger -> Узел для извлечения данных (например, IF для фильтрации) -> Узел HTTP Request (или специализированный узел типа Trecko, Jira) для создания карточки. Из письма извлекаются тема, тело, email отправителя и используются как поля в новой задаче.

    Скачивание и обработка вложений

    Workflow: IMAP Trigger -> Узел для фильтрации по отправителю или теме -> Узел Read Binary Files (для декодирования base64) -> Узел для сохранения в облачное хранилище (Google Drive, S3) или парсинга (например, для CSV/Excel вложений).

    Автоматический ответ или пересылка

    Workflow: IMAP Trigger -> Узел Email (SMTP) для отправки автоматического ответа или пересылки письма другому адресату. Можно добавить узел Template для формирования красивого ответа.

    Модерация входящих запросов и уведомление в чат

    Workflow: IMAP Trigger -> Узел Condition для проверки ключевых слов -> Узел Telegram или Slack для отправки уведомления в групповой чат с данными отправителя и текстом письма.

    Интеграция с другими узлами n8n

    Мощь узла IMAP раскрывается в комбинации с другими узлами n8n. Ключевые интеграции:

    • Узлы логики: IF, Switch для маршрутизации workflow на основе темы, отправителя или содержимого письма.
    • Узлы преобразования данных: Code, Spreadsheet File для парсинга структурированных данных из тела письма или вложений.
    • Узлы внешних сервисов: HTTP Request (для вызова любых API), а также нативные узлы для Google Sheets, Airtable, Notion, базы данных (PostgreSQL, MySQL).
    • Узлы для работы с файлами: Read Binary Files, для декодирования вложений.

    Рекомендации по безопасности и отладке

    При работе с узлом IMAP следует соблюдать меры безопасности:

    • Всегда используйте App Passwords (пароли приложений), а не основной пароль от почтового ящика, особенно если включена двухфакторная аутентификация.
    • Настройте для автоматизации отдельный почтовый ящик или используйте правила на стороне почтового сервиса для предварительной фильтрации.
    • Внимательно настраивайте параметр «Post-Processing Action», чтобы избежать случайного удаления или потери важных писем.

    Для отладки workflow рекомендуется:

    • Временно выставить параметр «Post-Processing Action» в значение NOTHING.
    • Использовать узел Debug или Function для вывода в консоль полного JSON-объекта от IMAP-узла и проверки структуры данных.
    • Тестировать workflow, отправляя пробные письма на отслеживаемый ящик.

Ответы на часто задаваемые вопросы (FAQ)

Почему узел IMAP не видит новые письма?

Наиболее частые причины: 1) Неверные учетные данные (особенно пароль). Убедитесь, что используете пароль приложения для сервисов вроде Gmail. 2) Блокировка со стороны почтового провайдера из-за «подозрительной» активности. Может потребоваться разрешить доступ «ненадежным приложениям» в настройках почты (для Gmail). 3) Неверно указанное имя папки (Mailbox Name). 4) Проблемы с сетью или портом (брандмауэр).

Как обрабатывать только непрочитанные письма?

Узел IMAP в n8n по умолчанию срабатывает только на новые, непрочитанные письма, появившиеся после активации workflow. Он не обрабатывает старые письма, уже находящиеся в ящике. Для обработки существующей почты можно использовать узел «Email (IMAP)» (не триггерный), который позволяет выполнять разовые операции чтения.

Можно ли отслеживать несколько папок или почтовых ящиков?

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

Как ограничить обработку писем только от определенных отправителей?

Сразу после узла IMAP необходимо добавить узел IF или Switch. В условии используйте выражение для проверки поля $json["from"][0]["address"]. Например: {{$json["from"][0]["address"] === "client@example.com"}}. Если условие не выполняется, workflow можно завершить или направить по другой ветке.

Как корректно обработать вложение (например, сохранить файл)?

Данные вложения приходят в поле attachments в кодировке base64. Стандартный путь обработки: 1) Настроить узел IMAP на возврат вложений (галочка «Attachments»). 2) Добавить узел «Read Binary Files» и в его настройках выбрать «Using Incoming Item’s Binary Data». 3) Далее подключить узел для сохранения, например, «Google Drive» -> «Upload», указав в поле «Binary Property» имя поля с данными (обычно data).

В чем разница между узлами «IMAP Trigger» и «Email (IMAP)»?

Это принципиально разные узлы. IMAP Trigger — это триггер, который запускает workflow при событии. Он работает постоянно в фоне. Email (IMAP) — это узел-действие (Action Node), который выполняет одноразовую операцию по команде (например, прочитать 10 последних писем, удалить письмо, переместить письмо). Он используется внутри workflow, инициированного другим триггером.

Как избежать бесконечных циклов при автоматической отправке ответов?

Если workflow на основе IMAP автоматически отправляет ответы, он может обработать и свое же собственное отправленное письмо, создав цикл. Чтобы этого избежать, необходимо добавить фильтр в узле IF, который будет проверять отправителя и исключать письма, отправленные с вашего же автоматического адреса. Также можно фильтровать по специальной метке в теме.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *