Email Connector を使用したメールのリストの作成

Email Connector では、フローの任意の部分からメールのリストを作成できます。この機能は、Mule 3 のトランスポートからの変更点です。Mule 3 のトランスポートでは、インバウンドエンドポイントポーリングの結果としてのみメールを取得できました。

POP3 と IMAP の両方の設定に ​list​ 操作が含まれます。これらの設定間には違いがありますが、特に指定のない限り、​list-pop3​ または ​list-imap​ を使用する例は両方の設定に適用されます。

コネクタの設定

サーバーに保存されているメールのリストを作成するための 2 つの設定があります。

  • POP3 設定

  • IMAP 設定

この両方の設定で、接続の確立に必要なパラメーターセット (サーバーの ​host​ と ​port​、および保護されたメールサーバーに接続するための ​username​ と ​password​) が共有されます。ただし、ユーザー名とパスワードで保護されていないサーバーがあるため、​username​ と ​password​ パラメーターは省略可能です。

POP3 および IMAP 設定の例を次に示します。

POP3 設定
<email:pop3-config name="pop3-config">
    <email:pop3-connection host="pop.gmail.com" port="995" user="<username>@<emailaddress>" password="<password>"/>
</email:pop3-config>
IMAP 設定
<email:imap-config name="imap-config">
    <email:imap-connection host="imap.gmail.com" port="912" user="<username>@<emailaddress>" password="<password>"/>
</email:imap-config>

これらの例は似ています。違いについては、​「Email Connector テクニカルリファレンス」​の「設定」セクションを参照してください。

セキュアな接続

IMAP および POP3 設定では、セキュアなバージョンの POP3S および IMAPS プロトコルによるセキュアな接続が可能です。これらの接続を使用すると、SSL と TLS 両方の暗号化を可能にする TLS コンテキストを設定できます。

IMAPS の例を次に示します。

TLS を使用した IMAP 設定
<email:imap-config name="tls">
    <email:imaps-connection host="${port}" port="${port}">
        <tls:context enabledProtocols="TLSv1.2,SSLv3">
            <tls:key-store path="aKeystore" password="password"/>
            <tls:trust-store path="aTruststore.jks" password="changeit"/>
        </tls:context>
    </email:imaps-connection>
</email:imap-config>

TLS コンテキストは POP3S 接続でも使用できます。

メールのリストの作成

List 操作では、パラメーター化されたメールボックスフォルダーに存在する設定済みメールボックスサーバー内のすべてのメールが返されます。

メールボックス内のメールのリストを作成するための基本構文を以下に示します。

POP3
<email:list-pop3 config-ref="pop3-config" mailboxFolder="INBOX"/>
IMAP
<email:list-imap config-ref="imap-config" mailboxFolder="INBOX"/>

前の例は、設定されたメールボックスサーバーの ​INBOX​ フォルダーにあるすべてのメールを返します。

config-ref​ 属性は、設定の例で宣言されている設定を参照しています。

メールからのデータの取得

受信メールでは、メール本文とすべての添付ファイルを含むメールの内容がペイロード内で保持されています。次の例では、取得したすべてのメールを反復処理します。

<flow name="retrieveWithAttachments">
    ...
    <email:list-imap config-ref="imap-config"/>
    <foreach>
        <set-variable variableName="email-content" value="payload.body" />
        <set-variable variableName="json-attachment" value="payload.attachments.json" />
    </foreach>
</flow>

ペイロード内の 1 つのメールを操作する場合、​payload.body​ を使用してメールの内容にアクセスします。上の例では、本文を ​email-content​ という変数に設定します。

メールの添付ファイルにアクセスするには、​payload.attachments.{nameOfTheAttachment}​ を使用できます。上の例では、取得したメールで保持されている ​json​ という添付ファイルを新しい変数 ​json-attachment​ 内に設定します。

属性

メールのリストを作成する場合、メールの内容だけでなくメールのメタデータ (件名、送信元アドレス、宛先アドレス、受信日など) にも関心があることがあります。これらの属性は、使用している設定の種別によって異なります。たとえば、IMAP プロトコルでは、​recent​、​seen​、​deleted​、​answered​ フラグなど、取得したメールに関するより多くのメタデータが提供されます。

Email Connector は Mule メッセージ属性を使用してこの情報にアクセスします。一方、メッセージのペイロードには常にメールの内容が含まれます。

メール属性の構造についての詳細は、​メールモジュールドキュメントリファレンス​を参照してください。

一致

メールのリストを作成する場合、​<email:pop3-matcher>​ および ​<email:imap-matcher>​ 要素を使用して絞り込むことができます。これらの要素では、メールを処理するために使用できる条件を定義します。

次の IMAP マッチャーの例では、​[0-9]​ 正規表現に一致せず、まだ参照されていない件名を持つメールが却下されます。

<email:list-imap config-ref="config">
    <email:imap-matcher subjectRegex="[0-9]" seen="EXCLUDE"/>
</email:list-imap>

すべてのマッチャー属性は省略可能であり、提供されていない場合は無視できます。また、​AND​ 演算子の下で相互に関連します。つまり、すべての条件が true である必要があります。

前の例では特定のコンポーネント専用の再利用できない内部のマッチャーを宣言しています。ただし、マッチャーは次の ​pop3-matcher​ のように再利用可能な要素として (名前付きの最上位要素として) 宣言できます。

<email:pop3-matcher name="pop3Matcher"
                    subjectRegex="Email Subject"
                    fromRegex="@mulesoft"/>

<flow name="listEmails">
  ...
  <file:list pop3-matcher="pop3Matcher" />
  ...
</flow>

IMAP マッチャーと POP3 マッチャーの比較

IMAP プロトコルでは、POP3 よりも詳細な絞り込みを可能にする、メールに関するメタデータが提供されます。

POP3 マッチャーには次のパラメーターが含まれます。

<email:pop3-matcher
  receivedSince="2015-06-03T13:21:58+00:00"
  receivedUntil="2015-07-03T13:21:58+00:00"
  sentSince="2015-05-03T13:21:58+00:00"
  sentUntil="2015-06-03T13:21:58+00:00"
  subjectRegex="BETA:"
  fromRegex="@mulesoft"/>

IMAP マッチャーは次のようになります。

<email:imap-matcher
  receivedSince="2015-06-03T13:21:58+00:00"
  receivedUntil="2015-07-03T13:21:58+00:00"
  sentSince="2015-05-03T13:21:58+00:00"
  sentUntil="2015-06-03T13:21:58+00:00"
  subjectRegex="BETA:"
  fromRegex="@mulesoft"
  recent="EXCLUDE|INCLUDE|REQUIRE"
  seen="EXCLUDE|INCLUDE|REQUIRE"
  deleted="EXCLUDE|INCLUDE|REQUIRE"
  answered="EXCLUDE|INCLUDE|REQUIRE"/>

IMAP マッチャーには ​recent​、​seen​、​deleted​、​answered​ パラメーターが含まれます。

添付ファイルの命名戦略

Email Connector には、添付ファイルの命名戦略を指定できる List および On New Email 操作用のパラメーターがあります。このパラメーターは設定レベルで定義されますが、操作レベルで上書きできます。

詳細と例は、​「添付ファイルの命名戦略」​を参照してください。