このトピックでは、Direct Mail と Alibaba Cloud EventBridge を統合して、メール配信結果の通知を配信する方法について説明します。
EventBridge を設定すると、Direct Mail から送信されたメールの配信結果は、EventBridge で設定したイベントパブリッシングルールに基づいて、 MNS や HTTP などの指定されたイベントターゲットに送信されます。これにより、配信結果を非同期で取得できます。
以下のセクションでは、イベントパブリッシングの設定方法について説明します。
EventBridge をアクティブ化し、アクセス許可を付与する
1. Alibaba Cloud ホームページで、EventBridge を検索してサービスをアクティブ化します。このサービスは無料です。


イベントルールの作成
EventBridge コンソールで、クラウドサービス専用イベントバス > ルールの作成を選択して、Direct Mail のイベントパブリッシングルールを作成します。ルール名と説明を入力して、基本情報を設定します。

イベントパターンを設定します。イベントソースの種類を Alibaba Cloud サービスイベントソースに設定します。イベントソースとして acs.dm を選択します。サポートされているイベントタイプは、送信失敗、送信成功、リンククリック、メール開封です。必要に応じてイベントタイプを追加できます。追加されていないイベントタイプは除外されます。

イベントターゲットを設定します。サービスタイプを選択します。このトピックでは、例として MNS を使用します。宛先キューを指定します。 MNS をアクティブ化してキューを作成する方法の詳細については、このトピックの MNS をアクティブ化してメッセージを受信するキューを作成するセクションをご参照ください。デフォルトでは、メッセージ本文は完全なイベントに設定され、Base64 エンコーディングは無効になっています。必要に応じて、再試行と配信不能キューオプションを設定できます。設定が完了したら、ルールの作成をクリックします。

ルールが作成されると、EventBridge の概要ページでルールを表示できます。

イベントタイプと変更方法
サポートされているイベントタイプ
イベントタイプ | type パラメーター値 |
dm:Deliver:Fail | |
dm:Deliver:Succeed | |
dm:Feedback:FblReport | |
dm:Trace:Click | |
dm:Trace:Open |
異なるイベントタイプの統計を変更する
左側のナビゲーションウィンドウで、イベントルールをクリックします。ルールを見つけて、アクション列の編集をクリックします。イベントパターンの設定手順で、イベントタイプを変更できます。


開封イベントとクリックイベントの統計を収集するための前提条件
メールの開封イベントとクリックイベントの通知を配信するには、まずデータ追跡機能を有効にする必要があります。詳細については、「データ追跡を有効にする方法」をご参照ください。
Direct Mail コンソールでイベントパブリッシングを有効にする
Direct Mail コンソールで、イベントパブリッシングスイッチをオンにします。

イベントパブリッシングメッセージを受信し、検証チェーンを確認する
このセクションでは、前の手順で設定したイベントターゲット MNS を例として使用して、イベントパブリッシング検証チェーンを確認する方法について説明します。
MNS をアクティブ化してメッセージを受信するキューを作成する
メッセージサービス (MNS) コンソール にログオンします。 MNS をアクティブ化していない場合は、画面の指示に従って サービス をアクティブ化します。
左側のナビゲーションウィンドウで、キューをクリックしてキューページに移動します。
キューの作成をクリックします。キューの作成ダイアログボックスが表示されます。
キュー名を入力します。カスタムキュー名を指定できます。この例では、
delivery-result-queueという名前のキューが作成されます。その他のパラメーターのデフォルト値を維持し、OK をクリックします。

イベントパブリッシングをトリガーして表示する
Direct Mail を使用してメールを送信した後、EventBridge コンソールでイベントトレースレコードを表示できます。


イベントターゲットの結果を表示する
MNS コンソールを開きます。キューリストで、EventBridge でイベントターゲットとして設定されているキューを見つけます。この例では、キューは delivery-result-queue です。メッセージの送受信をクリックします。メッセージの送受信ページにリダイレクトされます。

ページの下部にあるメッセージの受信をクリックします。送信されたばかりのイベントメッセージを表示できます。詳細をクリックして、完全なイベントメッセージの内容を表示します。イベント ID が EventBridge のレコードと同じであることがわかります。これは、イベントが MNS に正常に配信されたことを示しています。


特定の送信元アドレスのイベントパブリッシングの設定例
前の例で設定したイベントパブリッシングは、Direct Mail のすべてのメールドメインと送信元アドレスに有効です。ビジネス要件に合わせて、送信元アドレスなどのフィルター条件に基づいてイベントを配信するように、イベントルールの JSON 文字列を変更できます。
次の例は、特定の送信元アドレス「batch@sg.example.top」のイベントパブリッシングを設定する方法を示しています。ルールを設定すると、「batch@sg.example.top」から送信されたメールのレコードメッセージのみが EventBridge によってイベントターゲットに配信されます。
1. イベントルールを作成するときに、パターンコンテンツフィールドにイベントパターンのコンテンツを指定して、特定のフィールドに基づいてイベントをフィルタリングします。

この例では、パターンコンテンツは次のとおりです。
{
"source": [
"acs.dm"
],
"type": [
"dm:Deliver:Fail",
"dm:Deliver:Succeed",
"dm:Trace:Click",
"dm:Trace:Open",
"dm:Feedback:FblReport"
],
"data": {
"from": [
"batch@sg.example.top"
]
}
}次のコードは、完全なイベントメッセージ本文を示しています。イベント本文の内容と構造に基づいて、イベントルールの パターンコンテンツを作成できます。詳細については、「イベントパターン」をご参照ください。
パターンコンテンツ内のすべてのフィールド名は、イベント本文に存在する必要があります。そうでない場合、イベントメッセージは除外されます。
イベントパターンのフィールド名は、イベントのフィールド名と同じネスト構造である必要があります。
イベントパターンは、1 文字ずつ完全に一致する必要があります。一致は大文字と小文字を区別します。一致プロセス中は、文字列の標準化は実行されません。
一致させる値は JSON ルールに従う必要があります。文字列は引用符で囲み、数値とキーワード true、false、null は引用符で囲みません。
イベントパターンは OR セマンティクスをサポートしています。イベントパターンマッチングのキーは AND セマンティクスをサポートしています。キーの値は、配列の OR セマンティクスをサポートしています。
次のコードは、イベントのデフォルトのメッセージ本文を示しています。
dm:Deliver:Succeed
{
"datacontenttype": "application/json;charset=utf-8",
"aliyunaccountid": "1491110661959791",
"data": {
"rcpt": "example@example.com",
"deliver_time": "2024-05-22T08:27:42Z",
"err_code": "250",
"failed_type": "SendOk",
"env_id": "600000083914199845",
"send_time": "2024-05-22T08:27:41Z",
"err_msg": "250 Send Mail OK",
"header": {},
"from": "example2@aliyun.com",
"event": "dm:Deliver:Succeed",
"region": "cn-hangzhou",
"msg_id": "d93a742c-adec-487d-8c39-98069c583760@example.net",
"account": "example2@aliyun.com",
"status": 0
},
"subject": "acs:dm:cn-hangzhou:1491110661959791:*",
"aliyunoriginalaccountid": "1491110661959791",
"source": "acs.dm",
"type": "dm:Deliver:Succeed",
"aliyunpublishtime": "2024-05-22T08:27:42.539Z",
"specversion": "1.0",
"aliyuneventbusname": "default",
"id": "1223c134-b66d-4d53-b05e-780c0261ce22",
"time": "2024-05-22T08:27:42.462Z",
"aliyunregionid": "cn-hangzhou"
}dm:Deliver:Fail
{
"datacontenttype": "application/json;charset=utf-8",
"aliyunaccountid": "1406423658557179",
"data": {
"rcpt": "dm-cccxcvzsupp***@alibaba-inc.com",
"channel_name": "bg:alibabak",
"deliver_time": "2025-05-06T08:25:35",
"err_code": "554",
"outbound_ip": "8.219.XX.XX",
"failed_type": "SmtpNxBox",
"env_id": "576461125340473909",
"send_time": "2025-05-06T08:25:30",
"err_msg": "554 RCPT (dm-cccxcvzsupport@alibaba-inc.com) dosn't exist",
"header": {},
"from": "dm@email.sdyyr.top",
"event": "dm:Deliver:Fail",
"region": "ap-southeast-1",
"msg_id": "d00cacd9-4c40-4b0a-b049-ea35b5d06573@email.sdyyr.top",
"account": "dm@email.sdyyr.top",
"status": 2
},
"subject": "acs:dm:ap-southeast-1:1406423658557179:*",
"aliyunoriginalaccountid": "1406423658557179",
"source": "acs.dm",
"type": "dm:Deliver:Fail",
"aliyunpublishtime": "2025-05-06T08:25:35.634Z",
"specversion": "1.0",
"aliyuneventbusname": "default",
"id": "b2063370-2e17-4be8-b19e-d912690f5aa1",
"time": "2025-05-06T08:25:35.622Z",
"aliyunregionid": "ap-southeast-1"
}dm:Trace:Click
{
"datacontenttype": "application/json;charset=utf-8",
"aliyunaccountid": "1406423658557179",
"data": {
"rcpt": "dm-supp***@alibaba-inc.com",
"env_id": "576461125225614607",
"operateTime": "2025-05-06T08:33:41",
"from": "dm@email.sdyyr.top",
"client_ip": "42.120.XX.XXX",
"userKp": "1406423658557179",
"event": "dm:Trace:Click",
"region": "ap-southeast-1",
"msg_id": "8c34b82a-9a94-4e06-9579-963e846a688c@email.sdyyr.top",
"url": "https://www.alibabacloud.com/help/en/direct-mail/user-guide/set-up-eventbridge"
},
"subject": "acs:dm:ap-southeast-1:1406423658557179:*",
"aliyunoriginalaccountid": "1406423658557179",
"source": "acs.dm",
"type": "dm:Trace:Click",
"aliyunpublishtime": "2025-05-06T08:33:41.472Z",
"specversion": "1.0",
"aliyuneventbusname": "default",
"id": "0bf882fe-c9f8-4a29-bf26-7f0df7540c1c",
"time": "2025-05-06T08:33:41.469Z",
"aliyunregionid": "ap-southeast-1"
}dm:Trace:Open
{
"datacontenttype": "application/json;charset=utf-8",
"aliyunaccountid": "1406423658557179",
"data": {
"rcpt": "dm-supp***@alibaba-inc.com",
"env_id": "576461125225614607",
"operateTime": "2025-05-06T08:33:36",
"from": "dm@email.sdyyr.top",
"client_ip": "42.120.XX.XXX",
"userKp": "1406423658557179",
"event": "dm:Trace:Open",
"region": "ap-southeast-1",
"msg_id": "8c34b82a-9a94-4e06-9579-963e846a688c@email.sdyyr.top"
},
"subject": "acs:dm:ap-southeast-1:1406423658557179:*",
"aliyunoriginalaccountid": "1406423658557179",
"source": "acs.dm",
"type": "dm:Trace:Open",
"aliyunpublishtime": "2025-05-06T08:33:36.336Z",
"specversion": "1.0",
"aliyuneventbusname": "default",
"id": "a29d082d-3a21-4fa1-91e0-4a4ba183fd73",
"time": "2025-05-06T08:33:36.335Z",
"aliyunregionid": "ap-southeast-1"
}dm:Feedback:FblReport
{
"id": "45ef4dewdwe1-7c35-447a-bd93-fab****",
"source": "acs.dm",
"specversion": "1.0",
"subject": "acs.dm:cn-hangzhou:123456789098****:215672",
"time": "2020-11-19T21:04:41+08:00",
"type": "dm:Feedback:FblReport",
"aliyunaccountid": "123456789098****",
"aliyunpublishtime": "2020-11-19T21:04:42Z",
"aliyuneventbusname": "default",
"aliyunregionid": "cn-hangzhou",
"aliyunpublishaddr": "172.25.XX.XX",
"data": {
"send_time": "1726821644",
"send_email": "from@example.com",
"block_email": "to@example.com",
"subject": "Hello Mr.xxx",
"message_id": "<msgid***@example.com>",
"block_time": "1726821667",
"fbl_isp": "outlook**",
"fingerprint": "SMTPD_abc****"
}
}フィールドの詳細については、「Direct Mail イベント」をご参照ください。
イベント詳細の時間フィールドは UTC 形式です。
2. 送信元アドレスを確認するには、batch@sg.example.top からメールを送信します。

3. このメッセージは MNS キューにあります。この例では、 MNS がイベントメッセージを受信するイベントターゲットとして使用されています。これは、イベントパブリッシングの設定手順と同じです。必要に応じてイベントターゲットを設定できます。

4. 別の送信元アドレスからメールを送信した後、EventBridge のイベントトレースでイベントの詳細を確認できます。ただし、このイベントメッセージは MNS では受信されません。これは、指定された送信元アドレスのコールバック通知が実装されていることを示しています。

