可以从支持邮局协议 3 (POP3) 或因特网消息访问协议 (IMAP) 的电子邮件服务器接收电子邮件,这些电子邮件可以带有附件,也可以不带附件。
准备工作本主题假定您已经创建了消息流。 有关更多信息,请参阅 创建消息流。
关于此任务使用 IBM® App Connect Enterprise Toolkit 来配置 EmailInput 节点上的属性,以便您可以接收带有或不带附件的电子邮件。
过程将 EmailInput 节点添加到消息流。
编辑以下 EmailInput 节点属性:
在 “基本”选项卡上,添加电子邮件服务器 URL 或电子邮件服务器策略名称作为电子邮件服务器属性值,如 EmailInput 节点中所述。 例如,pop3://myemailserver.com:12345 或
imap://myemailserver.com:56789。
在 安全性 选项卡上,添加电子邮件服务器用户标识和密码对的安全身份对象名作为 安全身份 属性值。 有关电子邮件服务器安全身份支持的更多信息,请参阅 mqsicreential 命令 或 mqsisetdbparms 命令。
在 重试 选项卡上配置以下属性:
重试机制: "重试机制" 属性定义 EmailInput 节点如何处理消息流故障。 有效值包括故障、短重试和先短重试再长重试。 此属性的缺省值为先短重试再长重试,即,先重试接收电子邮件直至达到短重试阈值,然后进行长重试,这意味着永远不会从电子邮件服务器中删除该电子邮件,但也意味着无限期地重试接收电子邮件。 如果接收电子邮件消息失败,并且此属性值未设置为先短重试再长重试,那么将从电子邮件服务器中删除该电子邮件。
重试阈值:“重试阈值”属性是重试机制属性值设置为短重试时重试消息流事务的次数。 此属性的缺省值为 0。
短重试时间间隔(秒):“短重试时间间隔”是重试阈值属性值未设置为零时两次重试之间的间隔秒数。 此属性的缺省值为 0。 如果在满足短重试阈值并且电子邮件失败后重试该电子邮件,那么电子邮件将路由到故障终端,并且电子邮件将从电子邮件服务器中删除。
长重试时间间隔(秒):“长重试时间间隔”是重试机制属性值为先短重试再长重试时,超出短重试阈值后两次重试之间的间隔秒数。 此属性的缺省值为 300 秒。
对失败电子邮件的操作: "对失败电子邮件的操作" 属性确定 EmailInput 节点在所有尝试处理电子邮件内容失败后对输入数据源执行的操作。 “对失败的电子邮件执行的操作”属性是只读的,并设置为与“重试机制”属性配合使用的缺省值删除电子邮件。 如果“重试机制”属性设置为先短重试再长重试,那么消息流将继续尝试从电子邮件服务器检索该电子邮件,这意味着永远不会删除该电子邮件。 如果“重试机制”属性未设置为先短重试再长重试,那么将使用“对失败的电子邮件执行的操作”属性值删除电子邮件,并从电子邮件服务器中删除该电子邮件。
保存更改。
将消息流添加到 BAR 文件并进行部署。将消息传递到已部署的 EmailInput 节点时,将从电子邮件服务器接收电子邮件,并在多用途因特网邮件扩展 (MIME) 域中传播电子邮件消息主体和任何附件。 所有其他与该电子邮件相关的信息都存储在
MIME 逻辑树 Root.EmailInputHeader 中。 要获取使用 EmailInput 节点时在 MIME 逻辑树中传播的电子邮件元素的完整列表,请参阅 EmailInput 节点。
接收到包含附件的电子邮件时, EmailInput 节点会将电子邮件正文的不同部分放置在 MIME 域中,以便它们与 MIME 解析器相关联。 EmailInput 节点为存放信息而构建的 MIME 树位置与 EmailOutput 节点在发送电子邮件时期望的电子邮件数据所在的位置相同。 附件存储在 MIME 逻辑树的
Root.MIME.Parts.Part.Data
目录中。 其中,Content-Type 描述附件中的数据类型。
通过查看 MIME 域中的 Root.Properties.ContentType
值,您可以编写逻辑以解析附件。 有关 MIME 逻辑树的更多信息,请参阅 MIME 解析器和域。
结果仅当在由 EmailInput 节点 Failure , Out 或 Catch 终端处理后成功传播了电子邮件,并且成功执行了消息流时,才会从支持 POP3 或 IMAP 的电子邮件服务器中删除接收到的电子邮件。 这并不是全局协调事务的组成部分。
在下列情况下,将从电子邮件服务器中删除电子邮件:
未连接 Failure 终端。
在 Failure 终端中发生了异常。
接收电子邮件消息失败,并且重试机制属性值未设置为先短重试再长重试。
重试阈值未设置为
0,并且已达到短重试时间间隔属性值。
有关处理来自 EmailInput 节点的响应的更多信息,以及有关回滚处理的信息,请参阅 处理来自 EmailInput 节点的响应。