Email Connector を使用したメールの送信の例 - Mule 4:キーワード: メール、コネクタ、設定、smtp、送信、smtps

メール用 Anypoint Connector (Email Connector) を使用し、​Send​ 操作を使用して、メッセージを SMTP および SMTPS サーバー経由で送信します。次の例は、Anypoint Studio と XML エディターの両方で、メールと添付ファイルを送信するように Email Connector を設定する方法を示しています。

  • ​メールの送信
    SMTPS サーバー経由でメールを送信するように Email Connector の ​Send​ 操作を設定します。

  • ​添付ファイルの送信
    JSON ファイルを読み取るように File Connector の ​Read​ 操作を設定し、ファイルを添付ファイルとして SMTP サーバー経由で送信するように Email Connector の ​Send​ 操作を設定します。

  • ​複数の添付ファイルの送信
    複数のメディア種別の添付ファイルを定義する ​Set Variable​ コンポーネントを設定し、その添付ファイルを Email Connector の ​Send​ 操作を使用して送信します。次に、​Logger​ コンポーネントを使用して結果のメッセージを記録します。

メールの送信

次の例は、SMTPS サーバー経由でメールを送信する方法を示しています。​Scheduler​ コンポーネントでフローが開始され、次に ​Send​ 操作でメールが送信されます。 SMTPS 接続種別では、SSL または TLS 暗号化が有効になり、セキュアなバージョンの SMTP サーバー経由で暗号化メッセージが送信されます。

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

Email Connector での SMTPS 経由でのメッセージの送信フロー

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

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

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

  3. メールの ​[Send]​ 操作を ​[Scheduler]​ ソースの右にドラッグします。

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

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

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

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

    • Port (ポート)​ ​995

    • User (ユーザー)​ ​user3@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]​ をクリックします。

メール SMTPS の設定
  1. Send​ 操作の設定画面で、次の値を設定します。

    • From address (送信元アドレス)​ ​user1@domain.com

    • To addresses (送信先アドレス)​ ​Edit inline

  2. プラス記号 (​+​) をクリックして、新しいメールを追加します。

  3. [Value (値)]​ を ​user2@domain.com​ に設定します。

  4. 前の 2 つのアクションを繰り返して、別のメールを ​user3@domain.com​ として追加します。

  5. [Subject (件名)]​ を ​IMPORTANT!​ に設定します。

  6. [Content (コンテンツ)]​ を ​"<h1>Hello this is an important message</h1>"​ に設定し、​[ContentType (コンテンツタイプ)]​ を ​text/html​ に設定します。
    [Content (コンテンツ)]​ が空以外の場合、デフォルトでメッセージペイロードのコンテンツが使用されます。このペイロードが ​text​ でない場合、操作は ​EMAIL:SEND​ エラーで失敗します。

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

メールの Send 操作の設定

メールを送信するための 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:smtp-config name="Email_SMTP" >
		<email:smtps-connection host="pop.gmail.com" port="995" user="user1@domain.com" password="passwordvalue" >
			<tls:context enabledProtocols="TLSv1.2,SSLv3" >
				<tls:trust-store path="aTruststore.jks" password="changeit" />
				<tls:key-store path="aKeystore" password="password" />
			</tls:context>
		</email:smtps-connection>
	</email:smtp-config>
	<flow name="emailconnectorFlow">
		<scheduler>
			<scheduling-strategy >
				<fixed-frequency />
			</scheduling-strategy>
		</scheduler>
		<email:send config-ref="Email_SMTP" fromAddress="user1@domain.com" subject="IMPORTANT!">
			<email:to-addresses >
				<email:to-address value="user3@domain.com" />
        <email:to-address value="user2@domain.com" />
			</email:to-addresses>
			<email:body contentType="text/html" >
				<email:content ><![CDATA["<h1>Hello this is an important message</h1>"]]></email:content>
			</email:body>
		</email:send>
	</flow>
</mule>

添付ファイルの送信

次の例は、SMTP サーバー経由でメールと添付ファイルを送信する方法を示しています。DataWeave を使用して添付ファイルを管理します。このフローでは、File Connector の ​Read​ 操作を使用して JSON ファイルを読み取った後、Email Connector の ​Send​ 操作を使用してファイルのコンテンツを添付ファイルとして送信します。

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

Email Connector での SMTP 経由での添付ファイルの送信

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

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

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

  3. File Connector の ​[Read]​ 操作を ​[Scheduler]​ コンポーネントの右にドラッグします。

  4. [File Path (ファイルパス)]​ を ​file.json​ に設定します。

  5. [Send]​ 操作を ​[Read]​ 操作の右にドラッグします。

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

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

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

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

    • Port (ポート)​ ​995

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

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

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

  10. Send​ 操作の設定画面で、​[To addresses (送信先アドレス)]​ 項目を ​Edit inline​ に設定します。

  11. プラス記号 (​+​) をクリックして、新しいメールの ​[Value (値)]​ を ​example@domain.com​ として追加します。

  12. [Subject (件名)]​ を ​Attachment test​ に設定します。

  13. [Content (コンテンツ)]​ を ​"<h1>Hello this is an important message</h1>"​ に設定します。

  14. [Attachments (添付ファイル)]​ 項目に次の DataWeave 式を新しい添付ファイル要素として入力します。

    {
      'json-attachment' : payload
    }

    payload​ は、File Connector の ​Read​ 操作により読み取られた JSON ファイルのコンテンツです。

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

.メールでの添付ファイルの送信操作の設定

添付ファイルを送信するための XML

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

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

<mule xmlns:email="http://www.mulesoft.org/schema/mule/email" xmlns:file="http://www.mulesoft.org/schema/mule/file"
	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/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
http://www.mulesoft.org/schema/mule/email http://www.mulesoft.org/schema/mule/email/current/mule-email.xsd">
	<email:smtp-config name="Email_SMTP">
		<email:smtp-connection host="pop.gmail.com" port="995" user="user1@domain.com" password="password" />
	</email:smtp-config>
	<flow name="emailattachment">
		<scheduler doc:name="Scheduler">
			<scheduling-strategy >
				<fixed-frequency />
			</scheduling-strategy>
		</scheduler>
		<file:read path="/file.json"/>
		<email:send config-ref="config" subject="Attachment test">
            <email:to-addresses >
                <email:to-address value="example@domain.com" />
            </email:to-addresses>
            <email:body >
                <email:content ><![CDATA[#["<h1>Hello this is an important message</h1>"]]]></email:content>
            </email:body>
            <email:attachments >#[{
          'json-attachment' : "payload"
        }]</email:attachments>
        </email:send>
	</flow>
</mule>

複数の添付ファイルの送信

次の例は、SMTP サーバー経由でメールと複数の添付ファイルを送信する方法を示しています。​Scheduler​ コンポーネントでフローが開始されます。次に、​Set Variable​ コンポーネントで各添付ファイルのメディア種別 (JSON、テキスト、およびファイル) を定義します。その後、Email Connector の ​Send​ 操作で添付ファイルをメールで送信した後、​Logger​ コンポーネントを使用して結果のメッセージを記録します。

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

Email Connector の複数の添付ファイル
Figure 1. Email Connector の複数の添付ファイル

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

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

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

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

  4. [Set Variable]​ 設定画面で、次のパラメーターを設定します。

    • Name (名前)​ ​json

    • Value (値)​ ​output application/json --- {address: '221B Baker Street'}

    • MIME Type (MIME タイプ)​ ​application/json

  5. 別の ​[Set Variable]​ コンポーネントを最初の ​[Set Variable]​ コンポーネントの右にドラッグし、次のパラメーターを設定します。

    • Name (名前)​ ​textPlain

    • Value (値)​ ​This is the email text attachment for John Watson

    • MIME Type (MIME タイプ)​ ​text/plain

  6. 別の ​[Set Variable]​ コンポーネントを 2 番目の ​[Set Variable]​ コンポーネントの右にドラッグし、次のパラメーターを設定します。

    • Name (名前)​ ​octectStream

    • Value (値)​ ​vars.textPlain

    • MIME Type (MIME タイプ)​ ​application/octet-stream

  7. メールの ​[Send]​ 操作を 3 番目の ​[Set Variable]​ コンポーネントの右にドラッグします。

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

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

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

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

    • Port (ポート)​ ​995

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

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

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

  12. Send​ 操作の設定画面で、​[To addresses (送信先アドレス)]​ 項目を ​Edit inline​ に設定します。

  13. プラス記号 (​+​) をクリックして、新しいメールの ​[Value (値)]​ を ​user4@domain.com​ として追加します。

  14. [Content (コンテンツ)]​ 項目を ​Email Content​、​[ContentType]​ 項目を ​text/plain​ に設定します。

  15. [Attachments (添付ファイル)]​ 項目に次の DataWeave 式を入力します。

    {
                    'text-attachment' : vars.textPlain,
                    'json-attachment' : vars.json,
                    'stream-attachment' : vars.octetStream
                }
  16. アプリケーションを保存して実行します。

.メールでの複数の添付ファイルの送信の設定

複数の添付ファイルを送信するための XML

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

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

<mule 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/email http://www.mulesoft.org/schema/mule/email/current/mule-email.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd">
	<email:smtp-config name="Email_SMTP">
		<email:smtp-connection host="pop.gmail.com" port="995" user="user1@domain.com" password="password" />
	</email:smtp-config>
	<flow name="emailattachFlow">
		<scheduler>
			<scheduling-strategy >
				<fixed-frequency />
			</scheduling-strategy>
		</scheduler>
		<set-variable value="#[output application/json --- {address: '221B Baker Street'}]" variableName="json" mimeType="application/json"/>
        <set-variable value="This is the email text attachment for John Watson" variableName="textPlain" mimeType="text/plain"/>
        <set-variable value="#[vars.textPlain]" variableName="octetStream" mimeType="application/octet-stream"/>
        <email:send config-ref="config">
            <email:to-addresses >
                <email:to-address value="user4@domain.com" />
            </email:to-addresses>
            <email:body contentType="text/plain" >
                <email:content>Email Content</email:content>
            </email:body>
            <email:attachments>#[{
                'text-attachment' : vars.textPlain,
                'json-attachment' : vars.json,
                'stream-attachment' : vars.octetStream
            }]</email:attachments>
        </email:send>
		<logger level="INFO" doc:name="Logger" message="#['Message Id ' ++ correlationId as String]"/>
	</flow>

</mule>