Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerPOP3、IMAP、SMTP トランスポートは一新されました。Mule 3 のトランスポートモデルから、1 つの操作ベースのコネクタに進化しています。
この変更により、多数の新しい機能が可能になります。
インバウンドエンドポイントでしかポーリングされなかった旧来の IMAP や POP3 トランスポートとは異なり、オンデマンドでメールのコンテンツをリストできる。
メールの送信操作が簡便になる。
受信メールのデータ取得操作が簡便になる。
Mule の全コネクタの一貫性が確保される。
メールマッチング機能が向上する。
こうした機能が統合され、送信も受信も同様の操作に統一されています。
ここでは、Mule 3 の各メールトランスポートの設定を Mule 4 の新しい Email Connector に移行する方法を例示します。
以下の Mule 4 の設定例では、ご覧のとおり、inbound-endpoint
や outbound-endpoint
で宣言されていたパラメーターの大半が (user
、password
、host
、port
など) connection
要素に移されています。
<pop3:connector name="pop3"/>
<flow name="list">
<pop3:inbound-endpoint checkFrequency="100" user="bob" password="password" host="pop.example.com" port="995"/>
...
</flow>
<email:pop3-config name="pop3">
<email:pop3-connection connector-ref="pop3" host="pop.example.com" port="995" user="bob" password="password"/>
</email:pop3-config>
<flow name="list">
<scheduler>
<scheduling-strategy><fixed-frequency frequency="100"></scheduling-strategy>
</scheduler>
<email:list-pop3 config-ref="pop3"/>
...
</flow>
list-pop3 操作はポーリングを行わず、スケジューラーがフローのトリガーを実施します。 |
<imap:connector name="imap" checkFrequency="100"/>
<flow name="retrieve-emails">
<imap:inbound-endpoint user="bob" password="password" host="pop.example.com" port="995"/>
...
</flow>
<email:imap-config name="imap">
<email:imap-connection connector-ref="imap" host="pop.example.com" port="995" user="bob" password="password"/>
</email:imap-config>
<flow name="list">
<scheduler>
<scheduling-strategy><fixed-frequency frequency="100"></scheduling-strategy>
</scheduler>
<email:list-imap config-ref="imap"/>
...
</flow>
list-imap 操作はポーリングを行わず、スケジューラーがフローのトリガーを実施します。 |
Mule 3 では、受信メールの添付ファイルがメッセージの inboundAttachments
項目で設定されていました。Mule 4 の Email Connector では、添付ファイルがメッセージペイロードの項目で、マップとしてモデル化され、DataWeave を使用してアクセスできます。たとえば、photo_png
という添付ファイルを参照する式は #[payload.attachments['photo_png']]
です。
<smtp:connector name="smtp"/>
<flow name="send-email">
...
<smtp:outbound-endpoint connector-ref="smtp" host="smtp.example.com" user="bob" password="password"
port="587" subject="Hello Ale!" from="bob@mulesoft.com" to="ale@mulesoft.com" />
</flow>
<email:smtp-config name="smtp">
<email:smtp-connection host="smtp.example.com" port="587" user="bob" password="password"/>
</email:smtp-config>
<flow name="send">
<email:send config-ref="smtp" subject="Hello Ale!" from="bob@mulesoft.com">
<email:to-addresses>
<email:to-address value="ale@mulesoft.com"/>
</email:to-addresses>
<email:body>
<email:content>#[payload]</email:content>
</email:body>
</email:send>
</flow>
Mule 3 のトランスポートでは、アウトバウンド SMTP エンドポイントを実行する前に、送信メールのプロパティ (件名、アドレスなど) をイベントで設定されたアウトバウンドプロパティから設定できました。この場合、アウトバウンドプロパティが、エンドポイントまたはコネクタ自体に設定された値より優先されました。
Mule 3 とは異なり、メールと一緒に送信される添付ファイルは、メッセージの outboundAttachments
項目から取得するのではなく、email:send
操作で明示的に設定する必要があります。添付ファイルを送信する推奨パターンは、フローに変数として設定してから、これらの添付ファイルを送信する email:send
操作でその変数を参照することです。
Mule 3 では、各トランスポート/コネクタに独自の TLS 要素がありました。Mule 4 では、TLS コンテキストが、TLS を設定するための全モジュール共有の要素です。 次の例では、Mule 3 の例と、そのコードを Mule 4 に移行する方法を示しています。
この例では SMTP 設定を使用していますが、IMAP や POP3 設定でも同じです。 |
<smtps:connector name="tls">
<smtps:tls-client path="aKeystore" storePassword="password"/>
<smtps:tls-trust-store path="aTruststore" storePassword="changeit"/>
</smtps:connector>
<email:smtp-config name="tls">
<email:smtps-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:smtps-connection>
</email:smtp-config>
トランスポートは Mule にバインドされていないため、使用するには、Studio パレットを使用してアプリケーションに追加するか、次の連動関係を pom.xml
ファイルに追加する必要があります。
<dependency>
<groupId>org.mule.connectors</groupId>
<artifactId>mule-email-connector</artifactId>
<version>1.1.0</version> <!-- or newer -->
<classifier>mule-plugin</classifier>
</dependency>