31.15. 添付ファイルを使用したメールメッセージを分割する方法
この例では、複数の添付ファイルがあるメールメッセージを消費します。実行する内容は、個別の添付ファイルごとに Splitter EIP を使用して、添付ファイルを個別に処理することです。たとえば、メールメッセージに 5 つの添付がある場合、Splitter は 1 つの添付を持つ 5 つのメッセージを処理します。これを行うには、カスタム式を Splitter に提供する必要があります。ここでは、1 つの添付のある 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>
添付ファイルを byte[] として分割し、メッセージボディーとして保存することもできます。これは、ブール値 true で式を作成して行います。
SplitAttachmentsExpression split = SplitAttachmentsExpression(true);
次に、式をスプリッター EIP で使用します。