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

メール用 Anypoint Connector (Email Connector) には、フローの任意の部分からメールのリストを作成する ​List - IMAP​ および ​List - POP3​ 操作が用意されています。次の例は、コネクタでこれらの操作を設定する方法を示しています。

  • IMAPS サーバーからのメールのリスト作成
    TLS 接続を持つ IMAPS サーバーから設定済みの IMAP メールボックスフォルダーにあるすべてのメールのリストを作成するように ​List - IMAP​ 操作を設定します。また、​For Each​ スコープコンポーネントと 2 つの ​Set Variable​ コンポーネントを設定し、メールを反復処理してメールの本文と添付ファイルのコンテンツを変数に保存します。

  • POP3 サーバーからのメールのリスト作成
    [Match with (一致条件)]​ パラメーターに指定された条件に一致した設定済みの POP3 メールボックスフォルダーにあるすべてのメールのリストを作成するように ​List - POP3​ 操作を設定します。

これらの例では、一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。
    プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

IMAPS サーバーからのメールのリスト作成

次の例は、TLS 接続を持つ IMAPS サーバーから設定済みの IMAP メールボックスフォルダーにあるすべてのメールのリストを作成する方法を示しています。​Scheduler​ コンポーネントでフローを開始し、次に ​List - IMAP​ 操作でメールのリストを作成します。その後、​For Each​ スコープコンポーネントと 2 つの ​Set Variable​ コンポーネントでメールを反復処理し、メールの本文と添付ファイルのコンテンツペイロードを変数に保存します。

次のスクリーンショットは、この例のアプリケーションフローを示しています。

IMAPS サーバーからのメールのリスト作成のフロー
Figure 1. IMAPS サーバーからのメールのリスト作成のフロー

フローを作成する手順は、次のとおりです。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで、​[Scheduler]​ コンポーネントを選択してキャンバスにドラッグします。
    このソースは、時間ベースの条件が満たされたときにフローを開始します。

  3. [List - IMAP]​ 操作を ​[Scheduler]​ ソースの右にドラッグします。

  4. [List - IMAP]​ 設定画面で、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックして、操作のグローバル要素を設定します。

  5. [Connection (接続)]​ で ​[IMAPS Connection (IMAPS 接続)]​ を選択します。

  6. [General (一般)]​ タブで、次の値を入力します。

    • Host (ホスト)​ ​imap.gmail.com

    • Port (ポート)​ ​993

    • User (ユーザー)​ ​user1@domain.com

    • Password (パスワード)​ ​passwordconnection

  7. [TLS Configuration (TLS 設定)]​ セクションで、​[Edit inline (インライン編集)]​ を選択します。

  8. [Trust Store Configuration (トラストストア設定)]​ セクションで、次の値を入力します。

    • Path (パス)​ ​aTruststore.jks

    • Password (パスワード)​ ​passwordtrust

  9. [Key Store Configuration (キーストア設定)]​ セクションで、次の値を入力します。

    • Path (パス)​ ​aKeystore

    • Password (パスワード)​ ​passwordkey

  10. [Advanced (詳細)]​ セクションで、​[Enabled Protocols (有効化されたプロトコル)]​ を ​TLSv1.2,SSLv3​ に設定します。

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

IMAPS 接続の設定
  1. [List - IMAP]​ 設定画面で、​[Mailbox folder (メールボックスフォルダー)]​ 項目を ​INBOX​ に設定します。

List - IMAP の設定
  1. [For each]​ スコープコンポーネントを ​[List - IMAP]​ 操作の右にドラッグします。

  2. [Set Variable]​ コンポーネントを ​[For Each]​ スコープコンポーネントの内部にドラッグします。

  3. [Name (名前)]​ を ​email-content​ に、​[Value (値)]​ を ​payload.body​ に設定します。
    このコンポーネントでメールの本文コンテンツを新しい変数に保存します。

  4. 別の ​[Set Variable]​ コンポーネントを最初の ​[Set Variable]​ コンポーネントの右にドラッグします。

  5. [Name (名前)]​ を ​json-attachment​ に、​[Value (値)]​ を ​#[payload.attachments.'attachment-name']​ に設定します。
    このコンポーネントでメールの ​.json​ 添付ファイルを新しい変数に保存します。

  6. アプリケーションを保存して実行します。

IMAPS サーバーからメールのリストを作成するための XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:tls="http://www.mulesoft.org/schema/mule/tls" xmlns:email="http://www.mulesoft.org/schema/mule/email"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/email http://www.mulesoft.org/schema/mule/email/current/mule-email.xsd
http://www.mulesoft.org/schema/mule/tls http://www.mulesoft.org/schema/mule/tls/current/mule-tls.xsd">
	<email:imap-config name="Email_IMAP" doc:name="Email IMAP" doc:id="e1aa73b1-4719-4463-b0d9-4b92fb6b2622" >
		<email:imaps-connection host="imap.gmail.com" user="user1@domain.com" password="passwordconnection" >
			<tls:context enabledProtocols="TLSv1.2,SSLv3">
				<tls:trust-store path="aTruststore.jks" password="passwordtrust" />
				<tls:key-store path="aKeystore" password="passwordkey" />
			</tls:context>
		</email:imaps-connection>
	</email:imap-config>
	<flow name="ListIMAP" >
		<scheduler doc:name="Scheduler" >
			<scheduling-strategy >
				<fixed-frequency />
			</scheduling-strategy>
		</scheduler>
		<email:list-imap doc:name="List - IMAP" config-ref="Email_IMAP"/>
		<foreach doc:name="For Each" >
			<set-variable value="#[payload.body]" doc:name="Set Variable" variableName="email-content"/>
			<set-variable value="#[payload.attachments.'attachment-name']" doc:name="Set Variable" variableName="json-attachment"/>
		</foreach>
	</flow>
</mule>

List IMAP 用のページネーションオフセットの設定

[Pagination offset (ページネーションオフセット)]​ 項目を使用すると、​List - IMAP​ 操作の特定のページ内でページネーションオフセットを設定し、特定のレコード (またはレコードのサブセット) を取得できます。

  1. Studio で、フローから ​[List - IMAP]​ 操作を選択します。

  2. [Connector configuration (コネクタ設定)]​ を ​Email_IMAP_outlook​ に設定します。

  3. [Page size (ページサイズ)]​ を ​10​ に設定します。

  4. [Pagination offset (ページネーションオフセット)]​ を ​2​ に設定します。

「Pagination offset (ページネーションオフセット)」 項目が設定されている List Imap 操作

設定 XML​ エディターでは、​paginationOffset​ 設定は次のように記述されます。

    <email:list-imap doc:name="List - IMAP"
                          config-ref="Email_IMAP"
                          pageSize="10"
                          paginationOffset="2"
    />

POP3 サーバーからのメールのリスト作成

メールのリストを作成する場合、メールを処理するための条件を定義する ​[Match with (一致条件)]​ パラメーターを使用してメールを絞り込むことができます。すべてのマッチャー属性が省略可能です。また、​AND​ 演算子の下で相互に関連します。つまり、すべての条件が true である必要があります。これらの属性は、使用している設定の種別によって異なります。たとえば、IMAP プロトコルでは、​recent​、​seen​、​deleted​、​answered​ 属性フラグなど、取得したメールに関するより多くのメタデータが提供されます。

次の例は、設定の ​[Match with (一致条件)]​ パラメーターに指定された条件セットに一致する設定済みの POP3 メールボックスフォルダーにあるすべてのメールのリストを作成する方法を示しています。​Scheduler​ コンポーネントでフローを開始し、次に ​List - POP3​ 操作で、件名正規表現が ​BETA​ に一致するメールのみのリストを作成します。

次のスクリーンショットは、この例のアプリケーションフローを示しています。

POP3 サーバーからのメールのリスト作成のフロー
Figure 2. POP3 サーバーからのメールのリスト作成のフロー

フローを作成する手順は、次のとおりです。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)]​ ビューで、​[Scheduler]​ コンポーネントを選択してキャンバスにドラッグします。
    このソースは、時間ベースの条件が満たされたときにフローを開始します。

  3. [List - POP3]​ 操作を ​[Scheduler]​ ソースの右にドラッグします。

  4. [List - POP3]​ 設定画面で、​[Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (​+​) をクリックして、操作のグローバル要素を設定します。

  5. [Connection (接続)]​ で ​[POP3 Connection (POP3 接続)]​ を選択します。

  6. [General (一般)]​ タブで、次の値を入力します。

    • Host (ホスト)​ ​pop.gmail.com

    • Port (ポート)​ ​995

    • User (ユーザー)​ ​user2@domain.com

    • Password (パスワード)​ ​passwordconnection

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

POP3 接続の設定
  1. [List - POP3]​ 設定画面で、​[Mailbox folder (メールボックスフォルダー)]​ 項目を ​INBOX​ に設定します。

  2. [Match with (一致条件)]​ を ​Edit inline​ に設定します。

  3. [Subject regex (件名正規表現)]​ を ​BETA.​ に設定します。

List - IMAP の設定
  1. アプリケーションを保存して実行します。

POP3 サーバーからメールのリストを作成するための XML

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:tls="http://www.mulesoft.org/schema/mule/tls" xmlns:email="http://www.mulesoft.org/schema/mule/email"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/email http://www.mulesoft.org/schema/mule/email/current/mule-email.xsd
http://www.mulesoft.org/schema/mule/tls http://www.mulesoft.org/schema/mule/tls/current/mule-tls.xsd">
	<email:pop3-config name="Email_POP3" doc:name="Email POP3" >
		<email:pop3-connection host="pop.gmail.com" port="995" user="user2@domain.com" password="passwordconnection" />
	</email:pop3-config>
	<flow name="ListPOP3" >
		<scheduler doc:name="Scheduler">
			<scheduling-strategy >
				<fixed-frequency />
			</scheduling-strategy>
		</scheduler>
		<email:list-pop3 doc:name="List - POP3" config-ref="Email_POP3">
			<email:pop3-matcher subjectRegex="BETA" />
		</email:list-pop3>
	</flow>
</mule>

List POP3 用のページネーションオフセットの設定

[Pagination offset (ページネーションオフセット)]​ 項目を使用すると、​List - POP3​ 操作の特定のページ内でページネーションオフセットを設定し、特定のレコード (またはレコードのサブセット) を取得できます。

  1. Studio で、フローから ​[List - POP3]​ 操作を選択します。

  2. [Connector configuration (コネクタ設定)]​ を ​Email_POP3​ に設定します。

  3. [Page size (ページサイズ)]​ を ​10​ に設定します。

  4. [Pagination offset (ページネーションオフセット)]​ を ​2​ に設定します。

「Pagination offset (ページネーションオフセット)」 項目が設定されている List POP3 操作

設定 XML​ エディターでは、​paginationOffset​ 設定は次のように記述されます。

    <email:list-pop3 doc:name="List - POP3"
                          config-ref="Email_POP3"
                          pageSize="10"
                          paginationOffset="2"
    />