217.16. 如何使用附件分割邮件
在这个示例中,我们使用可能有多个附件的邮件。我们要为每个单独附件使用 Splitter EIP 来单独处理附件。例如,如果邮件有 5 个附件,我们想让 Splitter 处理五个信息,每个邮件都有一个附加。为此,我们需要向 Splitter 提供自定义表达式,其中我们提供了一个 List<Message>,其中包含带有单一附件的五个信息。
此代码在 camel-mail 组件中提供 Camel 2.10 开箱即用的代码。代码位于类中: org.apache.camel.component.mail.SplitAttachmentsExpression,您可以在 此处找到源代码
在 Camel 路由中,您需要在路由中使用此表达式,如下所示:
如果使用 XML DSL,则需要在 Splitter 中声明方法调用表达式,如下所示
<split>
<method beanType="org.apache.camel.component.mail.SplitAttachmentsExpression"/>
<to uri="mock:split"/>
</split>
从 Camel 2.16 开始,您还可以将附件拆分为字节[],以作为邮件正文存储。这可以通过使用布尔值 true 的表达式完成
SplitAttachmentsExpression split = SplitAttachmentsExpression(true);
然后,在 splitter eip 中使用表达式。