IMAP
Общее описание
Блок IMAP обеспечивает получение и чтение электронных писем с почтового сервера. Позволяет работать с папками, скачивать вложения и обрабатывать входящие сообщения в режиме реального времени или по расписанию. Блок IMAP не может быть инициатором потока.
Блок IMAP может использоваться в качестве:
- блока получателя
Настройка блока
В данном разделе описаны параметры блока IMAP, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Host | host | Обязательный параметр Имя хоста почтового сервера. | Строка | |
| Connection | connection | Позволяет выбрать предсозданное подключение к конечной точке или создать новое с помощью визарда Connection Manager. | Список | |
| Description | description | Описание блока. | Строка | |
| Close Folder | closeFolder | Определяет, будет ли компонент закрывать папку почтового ящика после завершения очередного опроса (poll). При true (по умолчанию) папка закрывается после каждого опроса. Позволяет снизить накладные расходы на переподключение при частых опросах | True | Логическое значение |
| Copy To | copyTo | Копирует обработанное почтовое сообщение в папку с указанным именем. Можно переопределить через заголовок с ключом copyTo | Строка | |
| Decode Filename | decodeFilename | Если установлено true, для декодирования имени файла используется метод MimeUtility.decodeText (аналогично настройке JVM‑свойства mail.mime.encodefilename) | False | Логическое значение |
| Delete | delete | Удаляет сообщения после обработки (путем установки флага DELETED). Если false, устанавливается флаг SEEN. Можно переопределить через заголовок с ключом delete. | False | Логическое значение |
| Disconnect | disconnect | Определяет, должен ли потребитель отключаться после опроса. При включении заставляет систему подключаться при каждом опросе. | False | Логическое значение |
| Handle Failed Message | handleFailedMessage | Если потребитель почты не может получить сообщение, позволяет обработать возникшее исключение через обработчик ошибок потребителя. При включенном bridge‑обработчике ошибок обработку выполнит маршрутизатор. | False | Логическое значение |
| Max Messages Per Poll | maxMessagesPerPoll | Задает максимальное количество сообщений, которые будут обработаны за один цикл опроса (poll) почтового ящика. Позволяет избежать массовой загрузки всех писем при старте сервера или после долгого простоя. Возможные значения:
| -1 | Целое число |
| Mime Decode Headers | mimeDecodeHeaders | Включает прозрачное декодирование и развертывание заголовков почты в формате MIME | False | Логическое значение |
| Move To | moveTo | Указывает имя папки почтового ящика, в которую будет перемещено письмо после успешной обработки. Можно переопределить динамически через заголовок сообщения с ключом moveTo. | Строка | |
| Peek | peek | Если включено, письмо не помечается как «прочитанное» (SEEN) на сервере до завершения обработки. При ошибке обработки возможно «откат» — письмо останется непрочитанным. Применяется только к сообщениям типа IMAPMessage. | True | Логическое значение |
| Send Empty Message When | sendEmptyMessageWhenIdle | Если во время опроса почтового ящика не найдено новых писем, компонент отправляет пустое сообщение (без тела) вместо того, чтобы ничего не делать. Позволяет поддерживать активность маршрута и сигнализировать о «пустом» опросе последующим компонентам. | False | Логическое значение |
| Skip Failed Message | skipFailedMessage | Определяет поведение при ошибке обработки отдельного письма. Возможные значения:
| False | Логическое значение |
| Unseen | unseen | Определяет, будут ли обрабатываться только письма с флагом «непрочитанное» (UNSEEN) на сервере. Возможные значения:
| True | Логическое значение |
| Idempotent Repository | idempotentRepository | Позволяет организовать кластерную обработку почты из одного ящика. Репозиторий отслеживает, какие письма уже обработаны, чтобы избежать дублирования. | Строка | |
| Idempotent Repository Remove On Commit | idempotentRepositoryRemoveOnCommit | Определяет, удалять ли ID письма из репозитория после успешной обработки и коммита. Возможные значения:
| True | Логическое значение |
| Search Term | searchTerm | Фильтр для отбора писем по критериям (тема, отправитель, дата отправки и т. д.) через jakarta.mail.search.SearchTerm. Поддерживает множественные условия с префиксом searchTerm. | Строка | |
| Backoff Error Threshold | backoffErrorThreshold | Число последовательных ошибочных опросов, после которых активируется механизм отсрочки (backoffMultiplier). | Целое число | |
| Backoff Idle Threshold | backoffIdleThreshold | Число последовательных «пустых» опросов (без писем), после которых активируется механизм отсрочки (backoffMultiplier). | Целое число | |
| Backoff Multiplier | backoffMultiplier | Коэффициент, определяющий число опросов, которые будут пропущены после серии ошибок/простоя (активируется при достижении backoffErrorThreshold/backoffIdleThreshold). | Целое число | |
| Delay | delay | Интервал (в миллисекундах) между последовательными опросами почтового сервера. | 60000 | Длинное целое число |
| Greedy | greedy | Если true, опрос выполняется немедленно после завершения предыдущего, если было получено хотя бы одно письмо. | False | Логическое значение |
| Initial Delay | initialDelay | Время (в миллисекундах) до первого опроса почтового сервера после запуска маршрута. | 1000 | Длинное целое число |
| Repeat Count | repeatCount | Максимальное число запусков опроса. Возможные значения:
| 0 | Целое число |
| Run Logging Level | runLoggingLevel | Уровень логирования старта и финиша инициации потока. Возможные значения:
| TRACE | Список |
| Scheduled Executor Service | scheduledExecutorService | Позволяет задать пользовательский или общий пул потоков (ScheduledExecutorService) для потребителя. По умолчанию каждый потребитель использует собственный однопоточный пул. | Строка | |
| Scheduler | scheduler | Указывает тип планировщика для опроса: spring, quartz или none (встроенный планировщик). | none | String |
| Scheduler Properties | schedulerProperties | Дополнительные свойства для настройки кастомного планировщика либо Quartz/Spring‑планировщика. Поддерживает множественные значения с префиксом scheduler. | Строка | |
| Start Scheduler | startScheduler | Определяет следует ли автоматически запускать планировщик. | True | Логическое значение |
| Time Unit | timeUnit | Единица измерения времени для параметров Initial Delay и Delay. Возможные значения:
| MILLISECONDS | Список |
| Use Fixed Delay | useFixedDelay | Фиксированная задержка или фиксированная частота выполнения. | True | Логическое значение |
| Sort Term | sortTerm | Определяет порядок сортировки сообщений при опросе почтового ящика. Нативно поддерживается для IMAP (использует возможности сервера). Возможные критерии: по дате (новые/старые), теме, отправителю и т. д. | Строка |
Расширенные настройки
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Bridge Error Handler | bridgeErrorHandler | Определяет, должен ли коннектор передавать ошибки, возникающие при получении сообщений, в обработчик ошибок (Error Handler). | False | Логическое значение |
| Exception Handler | exceptionHandler | Позволяет указать пользовательский обработчик исключений (ExceptionHandler) для получателя . По умолчанию получатель обрабатывает исключения самостоятельно: они логируются на уровне WARN или ERROR и игнорируются. При указании кастомного обработчика можно реализовать индивидуальную логику реагирования на ошибки (логирование, повторные попытки, перезапуск и т. д.). | Строка | |
| Exchange Pattern | exchangePattern | Задает шаблон взаимодействия между компонентами в интеграционном потоке. Определяет способ передачи сообщений и ожидания ответа. Возможные значения:
| Строка | |
| Fail On Duplicate File Attachment | failOnDuplicateFileAttachment | Определяет, прерывать ли обработку email‑сообщения, если в нем есть вложения с одинаковыми именами файлов. Возможные значения:
| False | Логическое значение |
| Fetch Size | fetchSize | Задает максимальное количество сообщений, которые будут получены за один опрос (poll) почтового сервера. Позволяет избежать перегрузки почтового сервера, если в папке много сообщений. Возможные значения:
| -1 | Целое число |
| Folder Name | folderName | Определяет папку на почтовом сервере, которая будет опрашиваться для получения сообщений. Параметр задает точное имя папки, как оно отображается в почтовом клиенте. Возможные значения:
| INBOX | Строка |
| Generate Missing Attachment Names | generateMissingAttachmentNames | Задает способ генерации имени файла для вложения, если оригинальное имя отсутствует. Установите значение uuid, чтобы присвоить файлу уникальный идентификатор (UUID) в качестве имени. | Строка | |
| Handle Duplicate Attachment Names | handleDuplicateAttachmentNames | Определяет стратегию обработки вложений с повторяющимися именами файлов. Возможные значения:
| Строка | |
| Mail Uid Generator | mailUidGenerator | Позволяет задать пользовательскую логику для генерации уникального идентификатора (UUID) почтового сообщения. Используется, когда стандартной схемы генерации недостаточно. | Строка | |
| Map Mail Message | mapMailMessage | Определяет, как будет представлено полученное почтовое сообщение. Возможные значения:
| True | Логическое значение |
| Poll Strategy | pollStrategy | Позволяет задать пользовательскую логику обработки ошибок, возникающих до создания Exchange во время опроса почтового ящика. Реализуется через интерфейс org.apache.camel.PollingConsumerPollingStrategy. | Строка | |
| Post Process Action | postProcessAction | Задает действие для постобработки почтового ящика после завершения основной обработки сообщений (например, пометить прочитанными, переместить в другую папку, удалить). Реализуется через MailBoxPostProcessAction. | Строка | |
| Additional Java Mail Properties | additionalJavaMailProperties | Многозначный параметр.Дополнительные свойства Java mail, которые дополнят/переопределят любые свойства по умолчанию, установленные на основе всех других опций. Это подходит для случаев, если вам нужно добавить некоторые специальные опции, но вы хотите сохранить остальные как есть. | Строка | |
| Alternative Body Header | alternativeBodyHeader | Ключ заголовка входящего сообщения, который содержит альтернативное тело электронного письма. Например, если вы отправляете письма в формате text/html и хотите предоставить альтернативное тело письма для почтовых клиентов, не поддерживающих HTML, задайте альтернативное тело письма с этим ключом в качестве заголовка. | CamelMailAlternativeBody. | Строка |
| Attachments Content Transfer Encoding Resolver | attachmentsContentTransferEncodingResolver | Пользовательский интерфейс для определения того, какую кодировку content-transfer-encoding использовать для вложений. | Строка | |
| Authenticator | authenticator | Аутентификатор для входа. Если он задан, то пароль и имя пользователя игнорируются. Может использоваться для токенов, которые могут истечь и поэтому должны считываться динамически. | Строка | |
| Binding | binding | Задает привязку (binding), используемую для преобразования сообщения движка в почтовое сообщение и обратно. | Строка | |
| Connection Timeout | connectionTimeout | Таймаут подключения в миллисекундах. | 30000 | Целое число |
| Content Type | contentType | Тип содержимого почтового сообщения (text/plain, text/html, и т.д.). Используйте text/html для HTML-писем. Важно: Чтобы определить contentType, который придет в почту, надо знать приоритеты в заголовках. Первый приоритет имеют настройки блока Set Header, этот блок «перетирает» все остальные настройки. Заголовок запроса HTTP Trigger имеет второй приоритет и отменяет все остальные, кроме настроек блока Set Header. Заголовок из Content Type имеет наименьший приоритет и будет использоваться только в том случае, если не сконфигурирован блок Set Header и заголовок из HTTP Trigger. | text/plain | Строка |
| Content Type Resolver | contentTypeResolver | Распознаватель (resolver) для определения Content-Type для вложений файлов. | Строка | |
| Debug Mode | debugMode | Включает режим отладки в базовом почтовом фреймворке. Фреймворк SUN Mail по умолчанию логирует отладочные сообщения в System.out. | False | Логическое значение |
| Header Filter Strategy | headerFilterStrategy | Пользовательская стратегия org.apache.camel.spi.HeaderFilterStrategy для фильтрации заголовков. | Строка | |
| Ignore Unsupported Charset | ignoreUnsupportedCharset | Опция, позволяющая игнорировать неподдерживаемую локальной JVM кодировку при отправке писем. Если кодировка не поддерживается, то charset=XXX (где XXX представляет неподдерживаемую кодировку) удаляется из content-type, и используется кодировка платформы по умолчанию. | False | Логическое значение |
| Ignore Uri Scheme | ignoreUriScheme | Опция определяет, нужно ли игнорировать протокол, указанный в начале URI, или использовать его для определения транспорта. Другими словами, это переключатель: "брать протокол из URI" или "не брать". Возможные значения:
| False | Логическое значение |
| Java Mail Properties | javaMailProperties | Устанавливает параметры JavaMail. Удалит все свойства по умолчанию и будет использовать только те, которые предусмотрены для этого метода. | Строка | |
| Session | session | Почтовая сессия, которая должна использоваться для всех почтовых взаимодействий. Подходит для случаев, где почтовые сессии создаются и управляются каким-либо другим ресурсом, например, контейнером JavaEE.При использовании пользовательской почтовой сессии имя хоста и порт будут браться из почтовой сессии, если они настроены. | Строка | |
| Use Inline Attachments | useInlineAttachments | Управляет способом извлечения вложений из email‑сообщений. Возможные значения:
| False | Логическое значение |
Настройки безопасности
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Password | password | Пользовательский пароль. | Строка | |
| Ssl Context Parameters | sslContextParameters | Если параметр определен, он применяется перед другими параметрами конечной точки SSL. | Строка | |
| Username | username | Имя пользователя. | Строка |