Flex Gateway新着情報
Governance新着情報
Monitoring API Managerメール用 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 操作を設定します。
これらの例では、一部の項目値に変数を使用しています。次のいずれかを実行できます。
コード内で変数を値に置き換える。
プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。
プロパティファイルの使い方が分からない場合は、「プロパティプレースホルダーの設定」を参照してください。
次の例は、TLS 接続を持つ IMAPS サーバーから設定済みの IMAP メールボックスフォルダーにあるすべてのメールのリストを作成する方法を示しています。Scheduler コンポーネントでフローを開始し、次に List - IMAP 操作でメールのリストを作成します。その後、For Each スコープコンポーネントと 2 つの Set Variable コンポーネントでメールを反復処理し、メールの本文と添付ファイルのコンテンツペイロードを変数に保存します。
次のスクリーンショットは、この例のアプリケーションフローを示しています。
フローを作成する手順は、次のとおりです。
Studio で新しい Mule プロジェクトを作成します。
[Mule Palette (Mule パレット)] ビューで、[Scheduler] コンポーネントを選択してキャンバスにドラッグします。
このソースは、時間ベースの条件が満たされたときにフローを開始します。
[List - IMAP] 操作を [Scheduler] ソースの右にドラッグします。
[List - IMAP] 設定画面で、[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、操作のグローバル要素を設定します。
[Connection (接続)] 項目で [IMAPS Connection (IMAPS 接続)] を選択します。
[General (一般)] タブで、次の値を入力します。
Host (ホスト)
imap.gmail.com
Port (ポート)
993
User (ユーザー)
user1@domain.com
Password (パスワード)
passwordconnection
[TLS Configuration (TLS 設定)] セクションで、[Edit inline (インライン編集)] を選択します。
[Trust Store Configuration (トラストストア設定)] セクションで、次の値を入力します。
Path (パス)
aTruststore.jks
Password (パスワード)
passwordtrust
[Key Store Configuration (キーストア設定)] セクションで、次の値を入力します。
Path (パス)
aKeystore
Password (パスワード)
passwordkey
[Advanced (詳細)] セクションで、[Enabled Protocols (有効化されたプロトコル)] を TLSv1.2,SSLv3 に設定します。
[OK] をクリックして、設定ウィンドウを閉じます。
次のスクリーンショットは、IMAP のグローバル設定を示しています。
[List - IMAP] 設定画面で、[Mailbox folder (メールボックスフォルダー)] 項目を INBOX に設定します。
次のスクリーンショットは、[List - IMAP] 設定画面を示しています。
[For each] スコープコンポーネントを [List - IMAP] 操作の右にドラッグします。
[Set Variable] コンポーネントを [For Each] スコープコンポーネントの内部にドラッグします。
[Name (名前)] 項目を email-content、[Value (値)] 項目を payload.body に設定します。
このコンポーネントでメールの本文コンテンツを新しい変数に保存します。
別の [Set Variable] コンポーネントを最初の [Set Variable] コンポーネントの右にドラッグします。
[Name (名前)] 項目を json-attachment、[Value (値)] 項目を #[payload.attachments.'attachment-name'] に設定します。
このコンポーネントでメールの .json 添付ファイルを新しい変数に保存します。
アプリケーションを保存して実行します。
この例のフローをすばやく 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>
メールのリストを作成する場合、メールを処理するための条件を定義する [Match with (一致条件)] パラメーターを使用してメールを絞り込むことができます。すべてのマッチャー属性が省略可能です。また、AND 演算子の下で相互に関連します。つまり、すべての条件が true である必要があります。これらの属性は、使用している設定の種別によって異なります。たとえば、IMAP プロトコルでは、recent、seen、deleted、answered 属性フラグなど、取得したメールに関するより多くのメタデータが提供されます。
次の例は、設定の [Match with (一致条件)] パラメーターに指定された条件セットに一致する設定済みの POP3 メールボックスフォルダーにあるすべてのメールのリストを作成する方法を示しています。Scheduler コンポーネントでフローを開始し、次に List - POP3 操作で、件名正規表現が BETA に一致するメールのみのリストを作成します。
次のスクリーンショットは、この例のアプリケーションフローを示しています。
フローを作成する手順は、次のとおりです。
Studio で新しい Mule プロジェクトを作成します。
[Mule Palette (Mule パレット)] ビューで、[Scheduler] コンポーネントを選択してキャンバスにドラッグします。
このソースは、時間ベースの条件が満たされたときにフローを開始します。
[List - POP3] 操作を [Scheduler] ソースの右にドラッグします。
[List - POP3] 設定画面で、[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックして、操作のグローバル要素を設定します。
[Connection (接続)] 項目で [POP3 Connection (POP3 接続)] を選択します。
[General (一般)] タブで、次の値を入力します。
Host (ホスト)
pop.gmail.com
Port (ポート)
995
User (ユーザー)
user2@domain.com
Password (パスワード)
passwordconnection
[OK] をクリックします。
次のスクリーンショットは、POP3 のグローバル設定を示しています。
[List - POP3] 設定画面で、[Mailbox folder (メールボックスフォルダー)] 項目を INBOX に設定します。
[Match with (一致条件)] 項目を Edit inline に設定します。
[Subject Regex (件名正規表現)] 項目を BETA. に設定します。
次のスクリーンショットは、[List - POP3] 設定画面を示しています。
アプリケーションを保存して実行します。
この例のフローをすばやく 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>