가 특정 주제와 이메일을 필터링하는 방법은 :
1. 이메일 전송 특정 필터
MuleSoft 인바운드 두 가지 구현을 제공 - 전자 메일 전송 (POP3, SMTP, IMAP) :
예를 들어, 다음과 같은 방식으로 MailSubjectRegExFilter
을 정의 할 수 있습니다 :
<flow>
<pop3s:inbound-endpoint doc:name="Poll emails" host="${email.host}" password="${email.password}" port="${email.port}" responseTimeout="10000" user="${email.user}"/>
<custom-filter class="org.mule.transport.email.filters.MailSubjectRegExFilter" doc:name="Custom">
<message-property-filter pattern="subject=mySubject" caseSensitive="true" doc:name="Message Property"/>
</custom-filter>
...
</flow>
자세한 내용은 다음 MuleSoft 문서에서 찾을 수 있습니다
2.사용하여 메시지 필터 MuleSoft의 블로그 게시물 Integration Patterns: Message Filter에서
:
를 사용하여 메시지 라우터, 메시지 필터, 특별한 종류의 세트를 기반으로 채널로부터 원하지 않는 메시지를 제거하기 기준.
샘플 흐름 :
<flow name="flowWithFilter">
<jms:inbound-endpoint queue="inQueue"/>
<message-filter onUnaccepted="DeadLetterQueueFlow" throwOnUnaccepted="false">
<expression-filter evaluator="xpath" expression="/order/@type = 'book'">
</message-filter>
<jms:outbound-endpoint queue="outQueue"/>
</flow>
확인 더 예 및 구성에 대한 기사.
3.사용자 정의 필터 만들기
Crear "필터"를 구현하고 해당 주체가 기준에 부합하는지 평가하는 Java 클래스. 아래 예제는 How to add a custom filter to an email inbound endpoint 문서에서 가져온 것으로 IMAP을 참조하지만 POP3와 비슷해야합니다.
XML 구성 :
<flow name="main">
<imaps:inbound-endpoint connector-ref="imapsConnector" user="[email protected]" password="theAccountPassword" host="imap.gmail.com" port="993" doc:name="IMAP">
<message-filter>
<custom-filter class="filters.MyCustomEmailFilter" />
</message-filter>
</imaps:inbound-endpoint>
<logger level="INFO" message="Email matched filter, do processing..." doc:name="Logger" />
</flow>
필터 클래스 :
public class MyCustomEmailFilter implements Filter {
@Override
public boolean accept(MuleMessage message) {
MimeMessage emailMessage = (MimeMessage) message.getOriginalPayload();
try {
return customEvalLogic(emailMessage);
} catch (MessagingException e) {
throw new MuleRuntimeException(e);
}
}
private boolean customEvalLogic(MimeMessage emailMessage) throws MessagingException {
return emailMessage.getSubject().contains("order"); // Please define custom email filter criteria here
}
}