217.15. 添付ファイル付きのメールメッセージを分割する方法

この例では、多数の添付ファイルを含む可能性のあるメールメッセージを使用します。やりたいことは、個々の添付ファイルごとにスプリッタ EIP を使用して、添付ファイルを個別に処理することです。たとえば、メールメッセージに 5 つの添付ファイルがある場合、Splitter は、それぞれに 1 つの添付ファイルを持つ 5 つのメッセージを処理する必要があります。これを行うには、単一の添付ファイルを持つ 5 つのメッセージを含む 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);

次に、式をスプリッター eip で使用します。