38.16. 사용자 정의 SearchTerm 사용
원하지 않는 이메일을 필터링할 수 있는 mailEndpoint
에서 searchTerm
을 구성할 수 있습니다.
예를 들어 Subject 또는 text에 Camel을 포함하도록 이메일을 필터링하려면 다음과 같이 수행할 수 있습니다.
<route> <from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.subjectOrBody=Camel"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.subjectOrBody=Camel"/>
<to uri="bean:myBean"/>
</route>
"searchTerm.subjectOrBody"
를 매개변수 키로 사용하여 이메일 제목 또는 본문에서 "Camel"이라는 단어가 포함되어 있음을 나타냅니다.
org.apache.camel.component.mail.SimpleSearchTerm
클래스에는 구성할 수 있는 여러 옵션이 있습니다.
또는 24시간 전으로 보이지 않는 새로운 이메일을 얻을 수 있습니다. "now-24h" 구문을 확인합니다. 자세한 내용은 아래 표를 참조하십시오.
<route> <from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.fromSentDate=now-24h"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.fromSentDate=now-24h"/>
<to uri="bean:myBean"/>
</route>
끝점 uri 구성에 여러 searchTerm을 사용할 수 있습니다. 그런 다음 AND 연산자를 사용하여 결합되므로 두 조건이 모두 일치해야 합니다. 예를 들어 이메일 제목 Camel이 있는 24시간 동안 보이지 않는 마지막 이메일을 얻으려면 다음을 수행할 수 있습니다.
<route> <from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.subject=Camel&searchTerm.fromSentDate=now-24h"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm.subject=Camel&searchTerm.fromSentDate=now-24h"/>
<to uri="bean:myBean"/>
</route>
SimpleSearchTerm
은 gRPC에서 쉽게 구성할 수 있도록 설계되었으므로 XML에서 <ECDHE> 스타일을 사용하여 구성할 수도 있습니다.
<bean id="mySearchTerm" class="org.apache.camel.component.mail.SimpleSearchTerm"> <property name="subject" value="Order"/> <property name="to" value="acme-order@acme.com"/> <property name="fromSentDate" value="now"/> </bean>
<bean id="mySearchTerm" class="org.apache.camel.component.mail.SimpleSearchTerm">
<property name="subject" value="Order"/>
<property name="to" value="acme-order@acme.com"/>
<property name="fromSentDate" value="now"/>
</bean>
그런 다음 다음과 같이 Camel 경로에서 #ovnId를 사용하여 이 template을 참조할 수 있습니다.
<route> <from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm=#mySearchTerm"/> <to uri="bean:myBean"/> </route>
<route>
<from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm=#mySearchTerm"/>
<to uri="bean:myBean"/>
</route>
Java에는 org.apache.camel.component.mail.SearchTermBuilder
클래스를 사용하여 복합 SearchTerms
를 빌드할 수 있는 빌더 클래스가 있습니다. 이렇게 하면 다음과 같은 복잡한 용어를 빌드할 수 있습니다.