搜索

38.4. 端点选项

download PDF

邮件端点使用 URI 语法进行配置:

imap:host:port

使用以下路径和查询参数:

38.4.1. 路径参数(2 参数)

Name描述默认值类型

host (common)

必需 邮件服务器主机名。

 

字符串

port (common)

邮件服务器的端口号。

 

int

38.4.2. 查询参数(66 参数)

Name描述默认值类型

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。

false

布尔值

closeFolder (consumer)

消费者是否在轮询后关闭文件夹。将这个选项设置为 false,也具有 disconnect=false,然后消费者在轮询之间保持文件夹打开。

true

布尔值

CopyTo (consumer)

处理邮件后,它可以复制到具有指定名称的邮件文件夹中。您可以使用键 copyTo 的标头覆盖此配置值,允许您将消息复制到运行时配置的文件夹名称。

 

字符串

decodeFilename (consumer)

如果设置为 true,则使用 MimeUtility.decodeText 方法来解码文件名。这与设置 JVM 系统属性 mail.mime.encodefilename 类似。

false

布尔值

delete (consumer)

在消息被处理后删除消息。这可以通过在邮件中设置 DELETED 标志来完成。如果为 false,则设置 SEEN 标志。从 Camel 2.10 开始,您可以通过使用键 delete 设置标头来覆盖此配置选项,以确定是否应该删除邮件。

false

布尔值

disconnect (consumer)

消费者在轮询后是否应断开。如果启用此选项,它会强制 Camel 在每个轮询连接。

false

布尔值

handleFailedMessage (consumer)

如果邮件使用者无法检索给定的邮件消息,则此选项允许处理消费者的错误处理程序导致的异常。通过在消费者上启用网桥错误处理程序,然后 Camel 路由错误处理程序可以处理异常。默认行为是消费者抛出异常,并且批处理中的邮件无法由 Camel 路由。

false

布尔值

maxMessagesPerPoll (consumer)

指定每个轮询要收集的最大消息数。默认情况下,不会设置最大值。可用于设置限制(例如 1000),以避免在服务器启动时下载数千个文件。将值设为 0 或负数以禁用这个选项。

 

int

mimeDecodeHeaders (consumer)

这个选项启用对邮件标头的透明 MIME 解码和取消处理。

false

布尔值

moveTo (consumer)

处理邮件后,它可以移到具有指定名称的邮件文件夹中。您可以使用键 moveTo 的标头来覆盖此配置值,允许您将消息移到运行时配置的文件夹名称。

 

字符串

peek (consumer)

在处理邮件之前,会将 javax.mail.Message 标记为 peeked。这只适用于 IMAPMessage 消息类型。通过使用将邮件标记为 SEEN 的邮件,这允许我们在 Camel 中存在错误处理,请回滚邮件。

true

布尔值

sendEmptyMessageWhenIdle (consumer)

如果轮询使用者没有轮询任何文件,您可以启用此选项来发送空消息(无正文)。

false

布尔值

skipFailedMessage (consumer)

如果邮件使用者无法检索给定的邮件邮件,此选项允许跳过邮件并继续检索下一个邮件。默认行为是消费者抛出异常,并且批处理中的邮件无法由 Camel 路由。

false

布尔值

unseen (consumer)

是否只通过不可预测的邮件限制。

true

布尔值

exceptionHandler (consumer (advanced))

要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。

 

ExceptionHandler

exchangePattern (consumer (advanced))

在消费者创建交换时设置交换模式。

Enum 值:

  • InOnly
  • InOut
  • InOptionalOut
 

ExchangePattern

fetchSize (consumer (advanced))

设置轮询期间要消耗的最大消息数。如果载体文件夹包含很多消息,这可用于避免过载邮件服务器。默认值 -1 表示没有获取大小,所有信息都会被消耗。将值设为 0 是一个特殊的地方,Camel 根本不消耗任何消息。

-1

int

folderName (consumer (advanced))

要轮询的文件夹。

INBOX

字符串

mailUidGenerator (consumer (advanced))

可插拔邮件生成器,允许使用自定义逻辑生成邮件邮件的 UUID。

 

MailUidGenerator

mapMailMessage (consumer (advanced))

指定 Camel 是否应该将收到的邮件映射到 Camel body/headers/attachments。如果设置为 true,邮件邮件的正文将映射到 Camel IN 消息的正文,邮件标头将映射到 IN 标头,并附加至 Camel IN attachment 消息。如果此选项设为 false,则 IN 消息包含原始 javax.mail.Message。您可以通过调用 exchange.getIn ().getBody (javax.mail.Message.class)来检索此原始消息。

true

布尔值

pollStrategy (consumer (advanced))

可插拔 org.apache.camel.PollingConsumerPollingStrategy 允许您提供自定义实施来控制在轮询操作期间通常会发生错误处理,然后再创建交换并在 Camel 中路由。

 

PollingConsumerPollStrategy

postProcessAction (consumer (advanced))

指的是 mailBoxPostProcessAction,用于在正常处理结束时对交易执行后处理任务。

 

MailBoxPostProcessAction

bcc (producer)

设置 BCC 电子邮件地址。使用逗号分隔多个电子邮件地址。

 

字符串

CC (producer)

设置 CC 电子邮件地址。使用逗号分隔多个电子邮件地址。

 

字符串

from (producer)

来自电子邮件地址。

camel@localhost

字符串

lazyStartProducer (producer)

生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 CamelContext 和路由在生成者启动期间启动,并导致路由启动失败。通过懒惰启动,启动失败可以在路由信息时通过 Camel 的路由错误处理程序进行处理。请注意,在处理第一个消息时,创建并启动生成者可能需要稍等时间,并延长处理的总处理时间。

false

布尔值

replyTo (producer)

Reply-To receivers (响应邮件的接收器)。使用逗号分隔多个电子邮件地址。

 

字符串

subject (producer)

正在发送的消息的主题。注: 在标头中设置主题优先于这个选项。

 

字符串

to (producer)

设置 To email address。使用逗号分隔多个电子邮件地址。

 

字符串

javaMailSender (producer (advanced))

使用自定义 org.apache.camel.component.mail.JavaMailSender 来发送电子邮件。

 

JavaMailSender

additionalJavaMailProperties (advanced)

设置额外的 java 邮件属性,这将附加/覆盖基于所有其他选项设置的任何默认属性。如果您需要添加一些特殊选项,但希望保留其他特殊选项,这非常有用。

 

Properties

alternativeBodyHeader (advanced)

指定包含替代电子邮件正文的 IN 消息标头的密钥。例如,如果您以文本/html 格式发送电子邮件,并希望为非 HTML 电子邮件客户端提供替代邮件正文,请将此密钥的替代邮件正文设置为标头。

CamelMailAlternativeBody

字符串

attachmentsContentTransferEncodingResolver (advanced)

要使用自定义将ContentTransferEncodingResolver 解决用于附件的 content-type-encoding。

 

AttachmentsContentTransferEncodingResolver

authenticator (advanced)

用于登录的验证器。如果设置,则忽略密码和用户名。可用于可过期的令牌,因此必须动态读取。

 

MailAuthenticator

绑定 (高级)

设置用于从 Camel 消息转换到邮件邮件的绑定。

 

MailBinding

connectionTimeout (advanced)

连接超时(毫秒)。

30000

int

contentType (advanced)

邮件消息内容类型。将 text/html 用于 HTML 邮件。

text/plain

字符串

contentTypeResolver (advanced)

用于确定文件附加的 Content-Type 的解析器。

 

ContentTypeResolver

debugMode (advanced)

在底层邮件框架中启用调试模式。SUN 邮件框架默认将调试信息记录到 System.out。

false

布尔值

HeaderFilterStrategy (advanced)

使用自定义 org.apache.camel.spi.HeaderFilterStrategy 来过滤标头。

 

HeaderFilterStrategy

ignoreUnsupportedCharset (advanced)

选项使 Camel 在发送邮件时忽略本地 JVM 中不支持的 charset。如果 charset 不支持,则 charset=XXX (其中 XXX 代表不受支持的 charset)已从 content-type 中删除,它依赖于平台默认。

false

布尔值

ignoreUriScheme (advanced)

选项使 Camel 在发送邮件时忽略本地 JVM 中不支持的 charset。如果 charset 不支持,则 charset=XXX (其中 XXX 代表不受支持的 charset)已从 content-type 中删除,它依赖于平台默认。

false

布尔值

javaMailProperties (advanced)

设置 java 邮件选项。将清除任何默认属性,并且仅使用为此方法提供的属性。

 

Properties

Session (advanced)

指定 camel 应用于所有邮件交互的邮件会话。在由某些其他资源(如 IaaS 容器)创建和管理邮件会话的情况下很有用。使用自定义邮件会话时,将使用邮件会话中的主机名和端口(如果在会话中配置)。

 

会话

useInlineAttachments (advanced)

是否使用内联或附加。

false

布尔值

idempotentRepository (filter)

可插拔存储库 org.apache.camel.spi.IdempotentRepository,它允许集群从同一站使用,并使存储库协调邮件是否对消费者处理有效。默认情况下不使用存储库。

 

IdempotentRepository

idempotentRepositoryRemoveOnCommit (filter)

使用幂等存储库时,当成功处理邮件并提交后,消息 ID 会从幂等存储库(默认)或保留在存储库中。默认情况下,它假定消息 id 是唯一的,且没有保留在存储库中的值,因为邮件消息将标记为 see/moved 或 removed,以防止再次消耗它。因此,将消息 id 存储在幂等存储库中具有较少的值。但是,此选项允许存储消息 ID,因为您可能具有的任何原因。

true

布尔值

searchTerm (filter)

引用 javax.mail.search.SearchTerm,它允许根据搜索标准(如主题、正文、来自等)过滤邮件。

 

SearchTerm

backoffErrorThreshold (scheduler)

在 backoffMultipler 应该 kick-in 之前发生的后续错误轮询(因为某些错误)的数量。

 

int

backoffIdleThreshold (scheduler)

在 backoffMultipler 应该 kick-in 之前应该发生的后续空闲轮询数量。

 

int

backoffMultiplier (scheduler)

如果一行中有很多后续空闲/errors,则让调度的轮询消费者避退。然后,倍数是在下一次实际尝试再次发生前跳过的轮询数量。当使用这个选项时,还必须配置 backoffIdleThreshold 和/或 backoffErrorThreshold。

 

int

delay (scheduler)

下一次轮询前的时间(毫秒)。

60000

long

greedy (scheduler)

如果启用了 greedy,如果上一个运行轮询 1 或更多消息,则 ScheduledPollConsumer 将立即运行。

false

布尔值

initialDelay (scheduler)

第一次轮询开始前的毫秒。

1000

long

repeatCount (scheduler)

指定触发的最大数量。因此,如果您将其设置为 1,调度程序将只触发一次。如果您将其设置为 5,它将只触发五次。值为零或负数表示会永久触发。

0

long

runLoggingLevel (scheduler)

消费者在轮询时记录 start/complete log 行。这个选项允许您为其配置日志级别。

Enum 值:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • OFF

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

允许配置用于消费者的自定义/共享线程池。默认情况下,每个使用者都有自己的单线程线程池。

 

ScheduledExecutorService

scheduler (scheduler)

要使用 camel-spring 或 camel-quartz 组件的 cron 调度程序。使用值 spring 或 quartz 用于内置在调度程序中。

none

对象

schedulerProperties (scheduler)

在使用自定义调度程序或任何基于 Spring 的调度程序时配置附加属性。

 

Map

startScheduler (scheduler)

调度程序是否应自动启动。

true

布尔值

timeUnit (scheduler)

initialDelay 和 delay 选项的时间单位。

Enum 值:

  • NANOSECONDS
  • MICROSECONDS
  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS

MILLISECONDS

TimeUnit

useFixedDelay (scheduler)

控制是否使用固定延迟或固定率。详情请参阅 JDK 中的 ScheduledExecutorService。

true

布尔值

密码 (安全)

登录的密码。另请参阅 setAuthenticator (MailAuthenticator)。

 

字符串

sslContextParameters (security)

使用 SSLContext 参数配置安全性:

 

SSLContextParameters

用户名 (安全)

用于登录的用户名。另请参阅 setAuthenticator (MailAuthenticator)。

 

字符串

sortTerm (sort)

排序消息的顺序。只支持 IMAP。在使用 POP3 或 IMAP 服务器没有 SORT 功能时,模拟到某种程度。

 

SortTerm[]

38.4.3. 端点示例

通常,您可以使用登录凭证指定 URI,如下所示(示例为 SMTP):

smtp://[username@]host[:port][?password=somepwd]

另外,也可以将用户名和密码指定为查询选项:

smtp://host[:port]?password=somepwd&username=someuser

例如:

smtp://mycompany.mailserver:30?password=tiger&username=scott

38.4.4. 组件别名名称

  • IMAP
  • IMAPs
  • POP3s
  • SMTP
  • SMTPs

38.4.5. 默认端口

支持默认端口号。如果省略端口号,Camel 会根据协议决定要使用的端口号。

协议默认端口号

SMTP

25

SMTPS

465

POP3

110

POP3S

995

IMAP

143

IMAPS

993

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.