検索

217.17. カスタム SearchTerm の使用

download PDF

Camel 2.11 から利用可能

MailEndpointsearchTerm を設定して、不要なメールを除外することができます。

たとえば、件名または本文に Camel が含まれるようにメールをフィルタリングするには、次のようにします。

<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>

エンドポイント 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>

SimpleSearchTerm は POJO から簡単に設定できるように設計されているため、XML の <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 ルートで #beanId を使用して、この Bean を参照できます。

<route>
  <from uri="imaps://mymailseerver?username=foo&password=secret&searchTerm=#mySearchTerm"/>
  <to uri="bean:myBean"/>
</route>

Java には、org.apache.camel.component.mail.SearchTermBuilder クラスを使用して複合 SearchTerms を構築するビルダークラスがあります。これにより、次のような複雑な用語を作成できます。

// we just want the unseen mails which is not spam
SearchTermBuilder builder = new SearchTermBuilder();

builder.unseen().body(Op.not, "Spam").subject(Op.not, "Spam")
  // which was sent from either foo or bar
  .from("foo@somewhere.com").from(Op.or, "bar@somewhere.com");
  // .. and we could continue building the terms

SearchTerm term = builder.build();
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.