新規メール受信時のフローのトリガーの例 - Mule 4

次の例は、未読のメールメッセージを特定および取得してフローを開始するようにメール用 Anypoint Connector (Email Connector) のソースリスナーの ​On New Email - IMAP​ および ​On New Email - POP3​ を設定する方法を示しています。

[Delete After Retrieve (取得後に削除)] パラメーターの設定

Email Connector の ​On New Email - IMAP​ および ​On New Email - POP3​ ソースでは、​[Delete after retrieve (取得後に削除)]​ パラメーターがサポートされます。このパラメーターを使用すると、メールボックスフォルダーから取得したメールを操作のプロセスの完了後に削除できます。処理されたメールを削除することで、次に処理されるメールは新規メールであることを確信できます。POP3 プロトコルではウォーターマークがサポートされないため、​[Delete after retrieve (取得後に削除)]​ パラメーターがこのプロトコルで一般的に使用されます。
このパラメーターは、メールが誤って削除されないようにデフォルトで無効になっています。

次の例は、Anypoint Studio でこのパラメーターを設定する方法を示しています。

  1. Studio キャンバスで ​[On New Email - IMAP]​ または ​[On New Email - POP3]​ ソースを選択します。

  2. ソースの設定画面で、​[Delete after retrieve (取得後に削除)]​ パラメーターを有効にします。

On New Email - IMAP の [Delete after retrieve (取得後に削除)]

[Configuration XML (設定 XML)]​ エディターでは、設定 ​deleteAfterRetrieve="true"​ は ​listener-imap​ タグの下にあります。

<flow name="OnNewEmail-IMAP">
		<email:listener-imap config-ref="Email_IMAP" watermarkEnabled="false" deleteAfterRetrieve="true">
			<scheduling-strategy >
				<fixed-frequency />
			</scheduling-strategy>
		</email:listener-imap>
	</flow>

次のスクリーンショットは、​On New Email - POP3​ ソースの ​[Delete after retrieve (取得後に削除)]​ 設定を示しています。

On New Email - POP の [Delete after retrieve (取得後に削除)]

[Configuration XML (設定 XML)]​ エディターでは、設定 ​deleteAfterRetrieve="true"​ は ​listener-pop3​ タグの下にあります。

<flow name="OnNewEmail-POP3">
  <email:listener-pop3 config-ref="Email_POP3" deleteAfterRetrieve="true">
    <scheduling-strategy >
      <fixed-frequency />
    </scheduling-strategy>
  </email:listener-pop3>
</flow>

[Enable Watermark (ウォーターマークの有効化)] パラメーターの設定

Email Connector では、IMAP プロトコル経由のメールに受信日のウォーターマークを適用することができます。​On New Email - IMAP​ ソースでは、​[Enable Watermark (ウォーターマークの有効化)]​ パラメーターがサポートされます。これにより、前回のポーリングの実行後に受信されたメールを含むメッセージのみをディスパッチできます。

次の例は、Anypoint Studio でこのパラメーターを設定する方法を示しています。

  1. Studio キャンバスで ​[On New Email - IMAP]​ ソースを選択します。

  2. ソースの設定画面で、​[Enable Watermark (ウォーターマークの有効化)]​ パラメーターを有効にします。

On New Email - IMAP の [Enable Watermark (ウォーターマークの有効化)]

[Configuration XML (設定 XML)]​ エディターでは、設定 ​watermark="true"​ は ​listener-imap​ タグの下にあります。

<flow name="OnNewEmail-IMAP">
    <email:listener-imap config-ref="Email_IMAP" watermark="true">
        <scheduling-strategy>
            <fixed-frequency/>
        </scheduling-strategy>
    </email:listener-imap>
</flow>

[IMAP Matcher (IMAP マッチャー)] パラメーターと [POP3 Matcher (POP3 マッチャー)] パラメーターの設定

Email Connector の ​On New Email - IMAP​ および ​On New Email - POP3​ ソースでは、​[Imap matcher (IMAP マッチャー)]​ と ​[Pop3 matcher (POP3 マッチャー)]​ パラメーターがサポートされます。このパラメーターを使用すると、カスタムマッチャーを設定できるため、ディスパッチされたメッセージを絞り込むための別の方法が提供されます。各ソースマッチャーでメールを日付、アドレス、件名、フラグなどで絞り込むことができます。

次の例は、単語 ​IMPORTANT​ を含むすべてのメッセージをディスパッチすることで、Anypoint Studio でこれらのパラメーターを設定する方法を示しています。

  1. Studio キャンバスで ​[On New Email - IMAP]​ または ​[On New Email - POP3]​ ソースを選択します。

  2. ソースの設定画面の ​[Imap matcher (IMAP マッチャー)]​ または ​[Pop3 matcher (POP3 マッチャー)]​ パラメーターで、次のいずれかを選択します。

    • Edit inline (インライン編集)
      すべてのインライン項目 (​[Seen (参照済み)]​、​[Answered (回答済み)]​、​[Deleted (削除済み)]​、​[Recent (最近)]​ など) を設定します。

    • Global reference (グローバル参照)
      グローバル参照設定を作成してインライン項目を自動的に設定します。

  1. [Subject regex (件名正規表現)]​ 項目を ​IMPORTANT​ として設定します。

On New Email - IMAP の [Imap matcher (IMAP マッチャー)]

[Configuration XML (設定 XML)]​ エディターでは、設定 ​imap-matcher subjectRegex="IMPORTANT"​ は ​listener-imap​ タグの下にあります。

<flow name="OnNewEmail-IMAP">
    <email:listener-imap config-ref="Email_IMAP">
        <scheduling-strategy>
            <fixed-frequency/>
        </scheduling-strategy>
        <email:imap-matcher subjectRegex="IMPORTANT"/>
    </email:listener-imap>
</flow>

[Attachment Naming Strategy (添付ファイル命名戦略)] パラメーターの設定

Email Connector の ​On New Email - IMAP​、​On New Email - POP3​、​List - IMAP​、および ​List - POP3​ 操作では、​[Attachment naming strategy (添付ファイル命名戦略)]​ パラメーターがサポートされます。このパラメーターを使用すると、添付ファイルの命名戦略を指定できます。このパラメーターをグローバル要素で設定したり、操作レベルで上書きしたりできます。このパラメーターには次のオプションがあります。 * NAME (デフォルト)
添付ファイルの ​Content-Disposition​ 行にある ​filename​ 項目の値で添付ファイルに名前が付けられます。​filename​ 項目が存在しないか空の場合、添付ファイルの名前は ​Unnamed​ になります。 複数の添付ファイルに名前がない場合、それらの名前は ​Unnamed​、​Unnamed_1​、​Unnamed_2​ のようになります。 * NAME_HEADERS
Email Connector は最初に ​Content-Disposition​ 行にある ​filename​ 項目の名前の取得を試みます (​NAME​ を使用する場合と同様)。それに失敗した場合、コネクタは添付ファイルの ​Content-Type​ 行にある ​name​ ヘッダーを検索します。​name​ ヘッダーが存在しないか空の場合、添付ファイルの名前は ​Unnamed​ になります。 * NAME_HEADERS_SUBJECT
NAME_HEADERS​ と ​NAME_HEADERS_SUBJECT​ の両方が失敗した場合、コネクタは添付ファイル自体がメール (ネストされたメッセージ) であるかを確認し、メールの件名を検索します。件名が空でない場合、添付ファイルの名前には件名が使用されます。それ以外の場合、添付ファイルの名前は ​Unnamed​ になります。

次の例は、グローバル要素でこのパラメーターを設定する方法を示しています。

  1. Studio で ​[Global Element (グローバル要素)]​ ビューに移動し、​[Create (作成)]​ をクリックして ​[Choose Global Type (グローバル種別の選択)]​ ウィンドウを開きます。

  2. [Filter (検索条件)]​ 項目に「​email​」と入力し、​[Email IMAP (メール IMAP)]​ または ​[Email POP3 (メール POP3)]​ を選択して ​[OK]​ をクリックします。

  3. [Global Element Properties (グローバル要素プロパティ)]​ ウィンドウのメインの ​[Advanced (詳細)]​ タブの ​[Attachment naming strategy (添付ファイル命名戦略)]​ 項目で、次のいずれかのオプションを選択します。

    • NAME

    • NAME_HEADERS

    • NAME_HEADERS_SUBJECT

「Attachment Naming Strategy (添付ファイル命名戦略)」 グローバル要素
  1. [General (一般)]​ タブの ​[Connection (接続)]​ で、この設定に指定する接続種別を選択します。

  2. コネクタの接続情報 (​[Host (ホスト)]​、​[Port (ポート)]​、​[TLS configuration (TLS 設定)]​ など) を指定します。

  3. 次の ​[Advanced (詳細)]​ タブで、必要に応じてタイムアウト設定および再接続情報 (再接続戦略を含む) を指定します。

  4. [OK]​ をクリックします。

[Configuration XML (設定 XML)]​ エディターでは、設定 ​attachmentNamingStrategy="NAME"​ は ​imap-config​ タグの下にあります。

<email:imap-config name="gmail" attachmentNamingStrategy="NAME">
  <email:imap-connection host="imap.gmail.com" port="993" user="user@gmail.com" password="mypassword">
  </email:imap-connection>
</email:imap-config>

次の例は、​On New Email - IMAP​ ソースレベルで命名戦略を上書きする方法を示しています。

  1. Studio キャンバスで ​[On New Email - IMAP]​ ソースを選択します。

  2. ソースの設定画面の ​[Advanced (詳細)]​ タブの ​[Attachment naming strategy (添付ファイル命名戦略)]​ 項目で、次のいずれかのオプションを選択します。

    • NAME

    • NAME_HEADERS

    • NAME_HEADERS_SUBJECT

ソースレベルでの [Attachment Naming Strategy (添付ファイル命名戦略)] の上書き

[Configuration XML (設定 XML)]​ エディターでは、設定 ​attachmentNamingStrategy="NAME"​ は ​listener-imap​ タグの下にあります。

<flow name="OnNewEmail-IMAP">
		<email:listener-imap  config-ref="Email_IMAP" attachmentNamingStrategy="NAME">
			<scheduling-strategy >
				<fixed-frequency />
			</scheduling-strategy>
		</email:listener-imap>
	</flow>

[IMAP Matcher (IMAP マッチャー)] パラメーターの [Enable Remote Search (リモート検索の有効化)] の設定

On New Email - IMAP​ ソースと ​[Imap matcher (IMAP マッチャー)]​ パラメーターを使用する場合、​[Enable Remote Search (リモート検索の有効化)]​ パラメーターを有効にすることで、検索条件をサーバー側で適用するかどうかを指定できます。

一部のメールサーバーが ​rfc-3501​ の検索語に完全に準拠していないため、このパラメーターはデフォルトでは無効になっています。このパラメーターを有効化すると、処理のためにクライアント側に送信されるメールの数が減るため、トラフィックが減少します。

これを完全に機能させるには、メールサーバーで少なくとも基本的な絞り込みフラグ (​[Answered (回答済み)]​、​[Deleted (削除済み)]​、​[Seen (参照済み)]​、および ​[Recent (最近)]​) の使用がサポートされている必要があります。

次の例は、回答済みのすべてのメールを除外するようにサーバー側の絞り込みを有効にすることで、Anypoint Studio でこのパラメーターを設定する方法を示しています。

  1. Studio キャンバスで ​[On New Email - IMAP]​ ソースを選択します。

  2. ソースの設定画面の ​[Imap matcher (IMAP マッチャー)]​ で、​[Edit inline (インライン編集)]​ を選択します。

  3. [Answered (回答済み)]​ 項目で ​[EXCLUDE]​ の値を選択します。

  4. [Enable Remote Search (リモート検索の有効化)]​ パラメーターを有効にします。

On New Email - IMAP の [Enable Remote Search (リモート検索の有効化)]

[Configuration XML (設定 XML)]​ エディターでは、設定 ​remoteSearchFilterEnabled="true"​ は ​listener-imap​ タグの下にあります。

<email:listener-imap config-ref="gmail" remoteSearchFilterEnabled="true">
    <scheduling-strategy>
        <fixed-frequency/>
    </scheduling-strategy>
    <email:imap-matcher answered="EXCLUDE"/>
</email:listener-imap>