新規メールを受信した場合にフローをトリガ

メールコネクタではリスナ (Studio および Design Center の UI では [On New Email (新規メール)] と呼ばれる) が提供されます。リスナはメールボックスのメールフォルダをポーリングし、その中の未読のメールを見つけて、見つかったメールごとに新しいメッセージを生成します。

この機能の重要な部分は、メールが新規であることをどのように判別するかです。 この判別には、次の 3 つの戦略があります。

  • deleteAfterRetrieve パラメータを true に設定する。この設定では、 メールは処理された後にメールボックスフォルダから削除されるため、次回のポーリングで見つかったすべてのメールが新規になります。

  • マッチャーを使用して、ポーリングするメールを絞り込む。

  • IMAP プロトコルでは、watermark パラメータを使用して、 前回のポーリングの実行後に受信されたメールのみを選択することもできます。

リスナ

メールコネクタでは、IMAP プロトコルと POP3 プロトコル用の同様に機能する 2 つのリスナが提供されます。ただし、使用する XML 要素の名前はメールプロトコルによって異なります。

  • listener-imap

  • listener-pop3

コンポーネントのポーリング頻度を変更するには、リスナーの scheduling-strategy を設定できます。

例: IMAP メールリスナ (新規メールトリガ)
<flow name="OnNewEmail">
    <email:listener-imap config-ref="imap-config">
        <scheduling-strategy>
            <fixed-frequency frequency="2000"/>
        </scheduling-strategy>
    </email:listener-imap>
    <flow-ref name="processEmail"/>
</flow>
例: POP3 メールリスナ (新規メールトリガ)
<flow name="OnNewEmail">
    <email:listener-pop3 config-ref="pop3-config">
        <scheduling-strategy>
            <fixed-frequency frequency="2000"/>
        </scheduling-strategy>
    </email:listener-pop3>
    <flow-ref name="processEmail"/>
</flow>

取得後に削除

POP3 および IMAP リスナでは、deleteAfterRetrieve パラメータを true に設定することで、ポーリングされたメールの処理が完了した後にメールを削除できます。 この機能は、メールが誤って削除されないようにデフォルトで無効になっています。

例: 取得後に削除
<flow name="OnNewEmailDeleteAfterProcessed">
    <email:listener-pop3 config-ref="pop3-config" deleteAfterRetrieve="true">
        <scheduling-strategy>
            <fixed-frequency/>
        </scheduling-strategy>
    </email:listener-pop3>
    <flow-ref name="processEmail"/>
</flow>

このパラメータは POP3 プロトコルで一般的に使用されます。POP3 プロトコルでは透かしがサポートされないためです。処理されたメールを削除することで、次に処理されるメールは新規メールであることを確信できます。

この機能では、設定済みのメールボックスフォルダからメールが*削除される*ことを理解しておくことが重要です。

透かし

メールコネクタでは、IMAP プロトコル経由のメールの場合にメールに透かしを適用し、受信日に基づいてメールを絞り込むことができます。

listener-imap トリガを使用して透かしを有効にするには、単に watermark パラメータを true に設定します。これで、割り当てられたメッセージには、前回のポーリングの実行後に受信されたメールのみが含まれます。

例: IMAP 透かしメールリスナ
<flow name="OnNewEmailWatermark">
    <email:listener-imap config-ref="imap-config" watermark="true">
        <scheduling-strategy>
            <fixed-frequency/>
        </scheduling-strategy>
    </email:listener-imap>
    <flow-ref name="processEmail"/>
</flow>

マッチャー

カスタムマッチャー設定では、割り当てるメッセージを絞り込む別の方法が提供されます。

POP3 および IMAP リスナには、日付、アドレス、件名、フラグ (参照済み、回答済みなど) によりメールを絞り込むことができる独自のマッチャーがあります。

例: マッチャーを使用したメールリスナ
<flow name="OnNewEmailWatermark">
    <email:listener-imap config-ref="imap-config">
        <scheduling-strategy>
            <fixed-frequency/>
        </scheduling-strategy>
        <email:imap-matcher subjectRegex="IMPORTANT"/>
    </email:listener-imap>
    <flow-ref name="processEmail"/>
</flow>

上の例では、件名に「IMPORTANT」の単語が含まれるメールメッセージのみが割り当てられます。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub