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 で使用します。