Перейти к основному содержимому
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя
Начало работы

IMAP

Общее описание

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

Блок IMAP может использоваться в качестве:

  • блока получателя

Настройка блока

В данном разделе описаны параметры блока IMAP, которые необходимо заполнить при его настройке.

Базовые параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
HosthostОбязательный параметр
Имя хоста почтового сервера.
Строка
ConnectionconnectionПозволяет выбрать предсозданное подключение к конечной точке или создать новое с помощью визарда Connection Manager.Список
DescriptiondescriptionОписание блока.Строка
Close FoldercloseFolderОпределяет, будет ли компонент закрывать папку почтового ящика после завершения очередного опроса (poll). При true (по умолчанию) папка закрывается после каждого опроса. Позволяет снизить накладные расходы на переподключение при частых опросахTrueЛогическое значение
Copy TocopyToКопирует обработанное почтовое сообщение в папку с указанным именем. Можно переопределить через заголовок с ключом copyToСтрока
Decode FilenamedecodeFilenameЕсли установлено true, для декодирования имени файла используется метод MimeUtility.decodeText (аналогично настройке JVM‑свойства mail.mime.encodefilename)FalseЛогическое значение
DeletedeleteУдаляет сообщения после обработки (путем установки флага DELETED). Если false, устанавливается флаг SEEN. Можно переопределить через заголовок с ключом delete.FalseЛогическое значение
DisconnectdisconnectОпределяет, должен ли потребитель отключаться после опроса. При включении заставляет систему подключаться при каждом опросе.FalseЛогическое значение
Handle Failed MessagehandleFailedMessageЕсли потребитель почты не может получить сообщение, позволяет обработать возникшее исключение через обработчик ошибок потребителя. При включенном bridge‑обработчике ошибок обработку выполнит маршрутизатор.FalseЛогическое значение
Max Messages Per PollmaxMessagesPerPollЗадает максимальное количество сообщений, которые будут обработаны за один цикл опроса (poll) почтового ящика. Позволяет избежать массовой загрузки всех писем при старте сервера или после долгого простоя.
Возможные значения:
  • Положительное число (например, 1000) — жесткий лимит на число сообщений за опрос.
  • 0 или отрицательное значение — ограничение отключено (по умолчанию), будут обработаны все доступные сообщения.
Значение "-1" означает, что ограничение на количество обрабатываемых сообщений отключено.
-1Целое число
Mime Decode HeadersmimeDecodeHeadersВключает прозрачное декодирование и развертывание заголовков почты в формате MIMEFalseЛогическое значение
Move TomoveToУказывает имя папки почтового ящика, в которую будет перемещено письмо после успешной обработки. Можно переопределить динамически через заголовок сообщения с ключом moveTo.Строка
PeekpeekЕсли включено, письмо не помечается как «прочитанное» (SEEN) на сервере до завершения обработки. При ошибке обработки возможно «откат» — письмо останется непрочитанным. Применяется только к сообщениям типа IMAPMessage.TrueЛогическое значение
Send Empty Message WhensendEmptyMessageWhenIdleЕсли во время опроса почтового ящика не найдено новых писем, компонент отправляет пустое сообщение (без тела) вместо того, чтобы ничего не делать. Позволяет поддерживать активность маршрута и сигнализировать о «пустом» опросе последующим компонентам.FalseЛогическое значение
Skip Failed MessageskipFailedMessageОпределяет поведение при ошибке обработки отдельного письма.
Возможные значения:
  • True: сообщение пропускается, обработка продолжается со следующего письма;
  • False: при ошибке выбрасывается исключение, вся партия писем не обрабатывается.
FalseЛогическое значение
UnseenunseenОпределяет, будут ли обрабатываться только письма с флагом «непрочитанное» (UNSEEN) на сервере.
Возможные значения:
  • True: обрабатываются только новые (непрочитанные) письма;
  • False: обрабатываются все письма в папке (включая уже прочитанные).
TrueЛогическое значение
Idempotent RepositoryidempotentRepositoryПозволяет организовать кластерную обработку почты из одного ящика. Репозиторий отслеживает, какие письма уже обработаны, чтобы избежать дублирования.Строка
Idempotent Repository Remove On CommitidempotentRepositoryRemoveOnCommitОпределяет, удалять ли ID письма из репозитория после успешной обработки и коммита.
Возможные значения:
  • True: ID удаляется (достаточно, если письмо помечается как прочитанное/перемещается/удаляется);
  • False: ID сохраняется в репозитории.
TrueЛогическое значение
Search TermsearchTermФильтр для отбора писем по критериям (тема, отправитель, дата отправки и т. д.) через jakarta.mail.search.SearchTerm. Поддерживает множественные условия с префиксом searchTerm.Строка
Backoff Error ThresholdbackoffErrorThresholdЧисло последовательных ошибочных опросов, после которых активируется механизм отсрочки (backoffMultiplier).Целое число
Backoff Idle ThresholdbackoffIdleThresholdЧисло последовательных «пустых» опросов (без писем), после которых активируется механизм отсрочки (backoffMultiplier).Целое число
Backoff MultiplierbackoffMultiplierКоэффициент, определяющий число опросов, которые будут пропущены после серии ошибок/простоя (активируется при достижении backoffErrorThreshold/backoffIdleThreshold).Целое число
DelaydelayИнтервал (в миллисекундах) между последовательными опросами почтового сервера.60000Длинное целое число
GreedygreedyЕсли true, опрос выполняется немедленно после завершения предыдущего, если было получено хотя бы одно письмо.FalseЛогическое значение
Initial DelayinitialDelayВремя (в миллисекундах) до первого опроса почтового сервера после запуска маршрута.1000Длинное целое число
Repeat CountrepeatCountМаксимальное число запусков опроса.
Возможные значения:
  • Любое положительное число: выполняется указанное количество раз.
  • "0" или отрицательное: выполняется бесконечно.
0Целое число
Run Logging LevelrunLoggingLevelУровень логирования старта и финиша инициации потока.
Возможные значения:
  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • OFF.
TRACEСписок
Scheduled Executor ServicescheduledExecutorServiceПозволяет задать пользовательский или общий пул потоков (ScheduledExecutorService) для потребителя. По умолчанию каждый потребитель использует собственный однопоточный пул.Строка
SchedulerschedulerУказывает тип планировщика для опроса: spring, quartz или none (встроенный планировщик).noneString
Scheduler PropertiesschedulerPropertiesДополнительные свойства для настройки кастомного планировщика либо Quartz/Spring‑планировщика. Поддерживает множественные значения с префиксом scheduler.Строка
Start SchedulerstartSchedulerОпределяет следует ли автоматически запускать планировщик.TrueЛогическое значение
Time UnittimeUnitЕдиница измерения времени для параметров Initial Delay и Delay.

Возможные значения:

  • NANOSECONDS
  • MICROSECONDS
  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
MILLISECONDSСписок
Use Fixed DelayuseFixedDelayФиксированная задержка или фиксированная частота выполнения.TrueЛогическое значение
Sort TermsortTermОпределяет порядок сортировки сообщений при опросе почтового ящика. Нативно поддерживается для IMAP (использует возможности сервера). Возможные критерии: по дате (новые/старые), теме, отправителю и т. д.Строка

Расширенные настройки

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Bridge Error HandlerbridgeErrorHandlerОпределяет, должен ли коннектор передавать ошибки, возникающие при получении сообщений, в обработчик ошибок (Error Handler).FalseЛогическое значение
Exception HandlerexceptionHandlerПозволяет указать пользовательский обработчик исключений (ExceptionHandler) для получателя . По умолчанию получатель обрабатывает исключения самостоятельно: они логируются на уровне WARN или ERROR и игнорируются. При указании кастомного обработчика можно реализовать индивидуальную логику реагирования на ошибки (логирование, повторные попытки, перезапуск и т. д.).Строка
Exchange PatternexchangePatternЗадает шаблон взаимодействия между компонентами в интеграционном потоке. Определяет способ передачи сообщений и ожидания ответа.
Возможные значения:
  • InOnly (однонаправленный вызов: сообщение отправляется, ответ игнорируется).
  • InOut (двунаправленный вызов: ожидается ответ от хранимой процедуры, который будет передан дальше по потоку).
Выбор шаблона влияет на то, как компонент обрабатывает результат выполнения процедуры и передает его следующему шагу потока.
Строка
Fail On Duplicate File AttachmentfailOnDuplicateFileAttachmentОпределяет, прерывать ли обработку email‑сообщения, если в нем есть вложения с одинаковыми именами файлов.
Возможные значения:
  • True — выбрасывается исключение и обработка останавливается.
  • False — дублирующее вложение пропускается, в лог записывается предупреждение (WARN).
FalseЛогическое значение
Fetch SizefetchSizeЗадает максимальное количество сообщений, которые будут получены за один опрос (poll) почтового сервера. Позволяет избежать перегрузки почтового сервера, если в папке много сообщений.
Возможные значения:
  • "-1" — нет ограничений: будут получены все сообщения;
  • "0" — сообщения не будут получены (опрос выполняется, но выборка пуста); - положительное число (например, 50) — строгое ограничение на число сообщений за один опрос.
-1Целое число
Folder NamefolderNameОпределяет папку на почтовом сервере, которая будет опрашиваться для получения сообщений. Параметр задает точное имя папки, как оно отображается в почтовом клиенте.
Возможные значения:
  • INBOX — входящие сообщения (значение по умолчанию).
  • SENT — отправленные.
  • DRAFTS — черновики.
  • TRASH или DELETED ITEMS — корзина.
  • Пользовательские папки: Project X, Reports, Archive/2024 и т. д.
Важно: имя папки должно точно соответствовать реальному имени на сервере (с учетом регистра, если сервер чувствителен к нему).
INBOXСтрока
Generate Missing Attachment NamesgenerateMissingAttachmentNamesЗадает способ генерации имени файла для вложения, если оригинальное имя отсутствует. Установите значение uuid, чтобы присвоить файлу уникальный идентификатор (UUID) в качестве имени.Строка
Handle Duplicate Attachment NameshandleDuplicateAttachmentNamesОпределяет стратегию обработки вложений с повторяющимися именами файлов.
Возможные значения:
  • never — дубликаты игнорируются (если failOnDuplicateFileAttachment = false);
  • uuidPrefix — к имени дубликата добавляется префикс с UUID и подчеркиванием (uuid_filename.ext);
  • uuidSuffix — к имени дубликата добавляется суффикс с подчеркиванием и UUID (filename_uuid.ext).
Строка
Mail Uid GeneratormailUidGeneratorПозволяет задать пользовательскую логику для генерации уникального идентификатора (UUID) почтового сообщения. Используется, когда стандартной схемы генерации недостаточно.Строка
Map Mail MessagemapMailMessageОпределяет, как будет представлено полученное почтовое сообщение.
Возможные значения:
  • true (по умолчанию): сообщение преобразуется в стандартную структуру — тело письма попадает в тело сообщения, заголовки — в заголовки, вложения — в вложения. Удобен для дальнейшей обработки в маршрутах.
  • false: сообщение передается «как есть» — в виде необработанного объекта.
TrueЛогическое значение
Poll StrategypollStrategyПозволяет задать пользовательскую логику обработки ошибок, возникающих до создания Exchange во время опроса почтового ящика. Реализуется через интерфейс org.apache.camel.PollingConsumerPollingStrategy.Строка
Post Process ActionpostProcessActionЗадает действие для постобработки почтового ящика после завершения основной обработки сообщений (например, пометить прочитанными, переместить в другую папку, удалить). Реализуется через MailBoxPostProcessAction.Строка
Additional Java Mail PropertiesadditionalJavaMailPropertiesМногозначный параметр.Дополнительные свойства Java mail, которые дополнят/переопределят любые свойства по умолчанию, установленные на основе всех других опций. Это подходит для случаев, если вам нужно добавить некоторые специальные опции, но вы хотите сохранить остальные как есть.Строка
Alternative Body HeaderalternativeBodyHeaderКлюч заголовка входящего сообщения, который содержит альтернативное тело электронного письма. Например, если вы отправляете письма в формате text/html и хотите предоставить альтернативное тело письма для почтовых клиентов, не поддерживающих HTML, задайте альтернативное тело письма с этим ключом в качестве заголовка.CamelMailAlternativeBody.Строка
Attachments Content Transfer Encoding ResolverattachmentsContentTransferEncodingResolverПользовательский интерфейс для определения того, какую кодировку content-transfer-encoding использовать для вложений.Строка
AuthenticatorauthenticatorАутентификатор для входа. Если он задан, то пароль и имя пользователя игнорируются. Может использоваться для токенов, которые могут истечь и поэтому должны считываться динамически.Строка
BindingbindingЗадает привязку (binding), используемую для преобразования сообщения движка в почтовое сообщение и обратно.Строка
Connection TimeoutconnectionTimeoutТаймаут подключения в миллисекундах.30000Целое число
Content TypecontentTypeТип содержимого почтового сообщения (text/plain, text/html, и т.д.). Используйте text/html для HTML-писем.
Важно: Чтобы определить contentType, который придет в почту, надо знать приоритеты в заголовках.
Первый приоритет имеют настройки блока Set Header, этот блок «перетирает» все остальные настройки.
Заголовок запроса HTTP Trigger имеет второй приоритет и отменяет все остальные, кроме настроек блока Set Header.
Заголовок из Content Type имеет наименьший приоритет и будет использоваться только в том случае, если не сконфигурирован блок Set Header и заголовок из HTTP Trigger.
text/plainСтрока
Content Type ResolvercontentTypeResolverРаспознаватель (resolver) для определения Content-Type для вложений файлов.Строка
Debug ModedebugModeВключает режим отладки в базовом почтовом фреймворке. Фреймворк SUN Mail по умолчанию логирует отладочные сообщения в System.out.FalseЛогическое значение
Header Filter StrategyheaderFilterStrategyПользовательская стратегия org.apache.camel.spi.HeaderFilterStrategy для фильтрации заголовков.Строка
Ignore Unsupported CharsetignoreUnsupportedCharsetОпция, позволяющая игнорировать неподдерживаемую локальной JVM кодировку при отправке писем. Если кодировка не поддерживается, то charset=XXX (где XXX представляет неподдерживаемую кодировку) удаляется из content-type, и используется кодировка платформы по умолчанию.FalseЛогическое значение
Ignore Uri SchemeignoreUriSchemeОпция определяет, нужно ли игнорировать протокол, указанный в начале URI, или использовать его для определения транспорта. Другими словами, это переключатель: "брать протокол из URI" или "не брать".
Возможные значения:
  • False — учитывать схему в URI. Протокол в начале строки определяет, как именно компонент будет работать — отправлять или получать почту.
  • True — игнорировать схему в URI. В этом случае тип протокола определяется не по началу адреса, а каким-то другим способом (например, через дополнительные JavaMail свойства). Это подходит для случаев, если вам нужно динамически менять протокол или конфигурация задается централизованно.
FalseЛогическое значение
Java Mail PropertiesjavaMailPropertiesУстанавливает параметры JavaMail. Удалит все свойства по умолчанию и будет использовать только те, которые предусмотрены для этого метода.Строка
SessionsessionПочтовая сессия, которая должна использоваться для всех почтовых взаимодействий. Подходит для случаев, где почтовые сессии создаются и управляются каким-либо другим ресурсом, например, контейнером JavaEE.При использовании пользовательской почтовой сессии имя хоста и порт будут браться из почтовой сессии, если они настроены.Строка
Use Inline AttachmentsuseInlineAttachmentsУправляет способом извлечения вложений из email‑сообщений.
Возможные значения:
  • True — извлекает вложения, встроенные в тело письма (inline).
  • False — извлекает вложения из секции attachments (как отдельные файлы).
FalseЛогическое значение

Настройки безопасности

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
PasswordpasswordПользовательский пароль.Строка
Ssl Context ParameterssslContextParametersЕсли параметр определен, он применяется перед другими параметрами конечной точки SSL.Строка
UsernameusernameИмя пользователя.Строка