217.16. 첨부 파일을 사용하여 메일 메시지를 분할하는 방법

이 예제에서는 여러 첨부 파일이 있을 수 있는 메일 메시지를 사용합니다. 우리가 하고 싶은 것은 개별 첨부 파일당 Splitter EIP를 사용하여 첨부 파일을 별도로 처리하는 것입니다. 예를 들어 메일 메시지에 5개의 첨부 파일이 있는 경우 Splitter에서 각각 하나의 첨부 파일이 있는 5개의 메시지를 처리하도록 합니다. 이렇게 하려면 단일 첨부 파일이 있는 5개의 메시지가 포함된 List<Message>를 제공하는 Splitter에 사용자 지정 식을 제공해야 합니다.To do this, we need to provide a custom Expression to the Splitter where we provide a List<Message> that contains the five messages with the single attachment.

이 코드는 camel-mail 구성 요소에서 Camel 2.10 이상 버전에서 제공됩니다. 코드는 class에 있습니다: 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와 함께 식을 사용합니다.