全部產品
Search
文件中心

Direct Mail:設定事件分發

更新時間:Feb 06, 2026

本文介紹Direct Mail服務如何通過整合阿里雲事件匯流排服務,實現郵件投遞結果的分發通知。

使用者成功進行事件匯流排相關配置後,通過Direct Mail服務發送的郵件,其投遞結果將按照在事件匯流排中設定的事件分發規則,發送至指定的事件目標(DingTalk、輕量訊息佇列、HTTP等),實現投遞結果的非同步擷取。

下文將詳細介紹如何完成事件分發設定。

Direct Mail控制台開啟事件分發功能

在Direct Mail控制台開啟事件分發開關。

b3070724625e6b3377fe779d96bf76ec

事件匯流排服務開通與訪問授權

1.在阿里雲首頁搜尋事件匯流排或 EventBridge,免費開通事件匯流排服務

image.png

image.png

image.png

image.png

建立事件規則

在控制台-事件匯流排-雲端服務專用事件匯流排-建立規則,建立Direct Mail服務的事件分發規則,配置基本資料,填寫規則名稱和描述;

image

image.png

配置事件模式,事件來源類型為阿里雲官方事件來源,事件來源選擇acs.dm,事件類型目前支援發送失敗、發送成功、點選連結、開啟郵件,使用者可按需添加,未添加的事件類型會被過濾。

image

配置事件目標,選擇服務類型(DingTalk、輕量訊息佇列、HTTP等,相關文檔:管理事件規則

image

img_2025-08-06_15-07-10

這裡以輕量訊息佇列為例,指定發送到的目標隊列(輕量訊息佇列服務的開通與隊列的建立請參考下文“開通輕量訊息佇列並建立訊息接收的隊列”章節),訊息體預設選擇完整事件,不進行base64編碼,重試和死信選型可按需設定,設定完成後點擊建立規則。

image

規則建立完成後,可在事件匯流排概覽中進行查看。

image.png

事件類型和修改方式

目前支援的事件類型

事件類型

type參數值

郵件投遞失敗

dm:Deliver:Fail

郵件投遞成功

dm:Deliver:Succeed

郵件FBL舉報資料

dm:Feedback:FblReport

郵件重新訂閱資料

dm:Feedback:Subscribe 

郵件退訂資料

dm:Feedback:UnSubscribe

點擊事件

dm:Trace:Click

開啟事件

dm:Trace:Open

地址校正灰名單非同步結果

dm:Validator:GrayListResult

說明

從郵件發出的時間開始,30天內的各類事件都會被推送到事件匯流排。

修改各類事件的統計

左側導覽列點擊事件規則-編輯事件模式-事件類型,可對事件類型進行修改。

image.png

image.png

開啟或者點擊事件的統計的前提

如果需要對郵件的開啟和點擊行為事件進行通知分發,前提是開啟資料跟蹤功能,詳細操作可參考如何開啟資料跟蹤功能?

接收事件分發訊息,驗證鏈結路已通

以上文流程設定的事件目標輕量訊息佇列為例,驗證事件分發鏈路。

開通輕量訊息佇列並建立訊息接收的隊列

  1. 進入輕量訊息佇列控制台,若未開通輕量訊息佇列服務,則按引導先開通輕量訊息佇列服務。

  2. 單擊左側導覽列中隊列,進入隊列頁面。

  3. 單擊頁面建立隊列按鈕,將會彈出建立隊列對話方塊。

  4. 輸入隊列名稱(隊列名稱使用者可自由定義,本樣本建立delivery-result-queue名稱的隊列),其他按預設值即可,然後單擊確認。

image.png

觸發事件分發並查看

使用Direct Mail服務發送一封郵件後,在事件匯流排控制台查看到事件的追蹤記錄;image.png

image.png

image.png

查看事件分發目標的結果

開啟輕量訊息佇列控制台,在隊列列表選擇事件匯流排目標配置的隊列(案例中為delivery-result-queue)點擊收發訊息按鈕,跳轉至收發訊息快速體驗頁面;

image.png

點擊頁面下方接收訊息按鈕,可查看到剛剛的事件訊息,點擊詳情,可查看到對應的完整事件訊息內容(可以看到事件ID與事件匯流排中的記錄一致,事件即成功分發到了輕量訊息佇列);image.png

image.png

image.png

設定發信地址級事件分發樣本

按照以上樣本流程配置的事件分發對Direct Mail服務下所有的發信網域名稱和地址生效,使用者可根據實際業務需求,修改事件規則的JSON串,來實現按照發信地址等過濾條件進行事件分發。

以下是指定發信地址test@hangzhou.dmtest.top進行Direct Mail事件分發的樣本,通過進行規則配置,使得只有從test@hangzhou.dmtest.top發出的郵件,其記錄訊息才會由事件匯流排分發到事件目標。

1.在建立事件規則時,在模式內容中指定事件模式的具體內容,對指定欄位內容進行過濾。

image.png

本樣本中,模式內容如下:

{
    "source": [
        "acs.dm"
    ],
    "type": [
        "dm:Deliver:Fail",
        "dm:Deliver:Succeed",
        "dm:Trace:Click",
        "dm:Trace:Open",
        "dm:Feedback:FblReport"
    ],
    "data": {
        "from": [
            "test@hangzhou.dmtest.top"
        ]
    }
}

這裡是一個完整的事件訊息體,使用者可基於事件體的內容和結構,參考事件模式,編寫事件規則的模式內容。

  • 模式內容中的所有欄位名都必須存在於事件體中,否則此事件訊息會被過濾。

  • 事件模式裡的欄位名必須和事件中的欄位名具有相同嵌套結構。

  • 事件模式是逐個字元精確匹配的 ,需注意大小寫,匹配過程中不會對字串進行任何標準化的操作。

  • 要匹配的值遵循JSON規則:用引號引起來的字串、數字以及不帶引號的關鍵字truefalsenull

  • 事件模式支援OR的語義,事件模式比對中各個Key支援AND語義,Key的Value值支援數組OR的語義。

以下是事件預設的訊息體

郵件投遞失敗

郵件投遞失敗時,事件匯流排EventBridge接收到的樣本事件如下所示。

{
  "data": {
    "header": {
      "X-Notify-Message-ID": "test******@******"
    },
    "env_id": "60000******",
    "account": "batch******@top",
    "from": "batch******@top",
    "rcpt": "xxx******@aliyun.com",
    "msg_id": "1df******@******",
    "channel_name": "bg:vip_*",
    "outbound_ip": "8.*.*.7",
    "send_time": "2024-04-29T11:07:04",
    "deliver_time": "2024-04-29T11:07:12",
    "status": "2",
    "event": "dm:Deliver:Fail",
    "region": "cn-hangzhou",
    "err_code": "554",
    "err_msg": "554  RCPT xxx******@aliyun.com dosn't exist",
    "failed_type": "SmtpNxBox",
    "esp": "*mail.com",
    "ip_pool_id": "10306c37-****-****-a82f-1dafb56a9dd2",
    "is_dedicated_ip": true,
    "tag": "xxxxx"
  },
  "id": "8734hhidu983hi457",
  "source": "acs:dm",
  "specversion": "1.0",
  "subject": "acs:dm:cn-hangzhou:{AccountId}:*",
  "time": "2024-04-29T11:07:12+08:00",
  "type": "dm:Deliver:Fail",
  "aliyunaccountid": "123456789098****",
  "aliyunpublishtime": "2024-04-29T11:07:13.179PRC",
  "aliyuneventbusname": "default",
  "aliyunregionid": "cn-hangzhou",
  "aliyunpublishaddr": "172.25.XX.XX"
}

data欄位包含的參數解釋如下表所示。

參數

類型

樣本值

描述

header

Object

與電子郵件相關的頭。

X-Notify-Message-ID

String

test****@example.com

自訂頭X-Notify-Message-ID。

env_id

String

60000****

發送郵件時系統返回的郵件ID。

account

String

batch****@top

寄件者的郵箱地址。

from

String

batch****@top

寄件者的郵箱地址。

rcpt

String

a****@aliyun.com

收件者的郵箱地址。

msg_id

String

1df****@example.com

郵件的Message-ID欄位。

channel_name

String

bg:vip_*

本次投遞外發IP所在的通道名稱。

outbound_ip

String

8.*.*.7

本次投遞外發IP。

send_time

String

2024-04-29T11:07:04

郵件接收時間。

deliver_time

String

2024-04-29T11:07:12

郵件投遞完成時間。

status

String

2

投遞結果狀態。

  • 0:成功。

  • 2:無效地址。

  • 3:接收方認為垃圾郵件。

  • 4:其他失敗。

event

String

dm:Deliver:Fail

事件訊息的類型。和type相同。

region

String

cn-hangzhou

事件發生的地區。

err_code

String

554

投遞完成時接收方ESP返回的碼。

err_msg

String

554 RCPT a****@aliyun.com dosn't exist

投遞完成時接收方ESP返回的資訊。

failed_type

String

SmtpNxBox

投遞結果分類。

esp

String

*mail.com

收信人的電子郵件供應商分類。

ip_pool_id

String

10306c37-****-****-a82f-1dafb56a9dd2

發送郵件使用的IP池ID。

is_dedicated_ip

Boolean

true

是否使用了獨立IP。

tag

String

xxxxx

發送郵件使用的tag。

郵件投遞成功

郵件投遞成功時,事件匯流排EventBridge接收到的樣本事件如下所示。

{
  "data": {
    "header": {
      "X-Notify-Message-ID": "test******@******"
    },
    "env_id": "60000******",
    "account": "batch******@top",
    "from": "batch******@top",
    "rcpt": "xxx******@aliyun.com",
    "msg_id": "1df******@******",
    "channel_name": "bg:vip_*",
    "outbound_ip": "8.*.*.7",
    "send_time": "2024-04-29T11:07:04",
    "deliver_time": "2024-04-29T11:07:12",
    "status": "0",
    "event": "dm:Deliver:Succeed",
    "region": "cn-hangzhou",
    "err_code": "250",
    "err_msg": "250 Send Mail OK",
    "failed_type": "SendOk",
    "esp": "*mail.com",
    "ip_pool_id": "10306c37-****-****-a82f-1dafb56a9dd2",
    "is_dedicated_ip": true,
    "tag": "xxxxx"
  },
  "id": "8734hhidu983hi457",
  "source": "acs:dm",
  "specversion": "1.0",
  "subject": "acs:dm:cn-hangzhou:{AccountId}:*",
  "time": "2024-04-29T11:07:12+08:00",
  "type": "dm:Deliver:Succeed",
  "aliyunaccountid": "123456789098****",
  "aliyunpublishtime": "2024-04-29T11:07:13.179PRC",
  "aliyuneventbusname": "default",
  "aliyunregionid": "cn-hangzhou",
  "aliyunpublishaddr": "172.25.XX.XX"
}

關於data欄位包含的參數解釋,請參見參數解析

郵件FBL舉報資料

郵件FBL舉報資料時,事件匯流排EventBridge接收到的樣本事件如下所示。

{
    "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@xxx.com",
        "block_email": "to@yyy.com",
        "subject": "Hello Mr.xxx",
        "message_id": "<msgid***@xxx.com>",
        "block_time": "1726821667",
        "fbl_isp": "outlook**",
        "fingerprint": "SMTPD_abc****"
    }
}

data欄位包含的參數解釋如下表所示。

參數

類型

樣本值

描述

send_time

String

1726821644

郵件發送時間。

send_email

String

from@xxx.com

寄件者郵箱地址。

block_email

String

to@yyy.com

被攔截的收件者郵箱地址。

subject

String

Hello Mr.xxx

郵件主題。

message_id

String

<msgid***@xxx.com>

郵件的唯一識別碼。

block_time

String

1726821667

郵件被攔截的時間。

fbl_isp

String

outlook**

寄件者使用的郵件服務提供者(ISP)。

fingerprint

String

SMTPD_abc****

郵件的特徵指紋。

郵件重新訂閱資料

郵件重新訂閱資料時,事件匯流排EventBridge接收到的樣本事件如下所示。

{
    "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:Subscribe",
    "aliyunaccountid": "123456789098****",
    "aliyunpublishtime": "2020-11-19T21:04:42Z",
    "aliyuneventbusname": "default",
    "aliyunregionid": "cn-hangzhou",
    "aliyunpublishaddr": "172.25.XX.XX",
    "data": {
        "operate_time": "2024-04-29T11:25:48",
        "envid": "6000*********",
        "from": "from@xxx.com",
        "rcpt": "to@yyy.com",
        "client_ip": "102.**.**.1"
    }
}

data欄位包含的參數解釋如下表所示。

參數

類型

樣本值

描述

operate_time

String

2024-04-29T11:25:48

事件操作時間(UTC時間)

env_id

String

6000*********

發送郵件時系統返回的郵件ID

from

String

from@xxx.com

寄件者地址

rcpt

String

to@yyy.com

收件者地址

client_ip

String

102.**.**.1

開啟事件的用戶端IP

郵件退訂資料

郵件退訂資料時,事件匯流排EventBridge接收到的樣本事件如下所示。

{
    "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:UnSubscribe",
    "aliyunaccountid": "123456789098****",
    "aliyunpublishtime": "2020-11-19T21:04:42Z",
    "aliyuneventbusname": "default",
    "aliyunregionid": "cn-hangzhou",
    "aliyunpublishaddr": "172.25.XX.XX",
    "data": {
        "operate_time": "2024-04-29T11:25:48",
        "envid": "6000*********",
        "from": "from@xxx.com",
        "rcpt": "to@yyy.com",
        "client_ip": "102.**.**.1"
    }
}

data欄位包含的參數解釋如下表所示。

參數

類型

樣本值

描述

operate_time

String

2024-04-29T11:25:48

事件操作時間(UTC時間)

env_id

String

6000*********

發送郵件時系統返回的郵件ID

from

String

from@xxx.com

寄件者地址

rcpt

String

to@yyy.com

收件者地址

client_ip

String

102.**.**.1

開啟事件的用戶端IP

點擊事件

點擊事件時,事件匯流排EventBridge接收到的樣本事件如下所示。

{
    "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:Trace:Click",
    "aliyunaccountid": "123456789098****",
    "aliyunpublishtime": "2020-11-19T21:04:42Z",
    "aliyuneventbusname": "default",
    "aliyunregionid": "cn-hangzhou",
    "aliyunpublishaddr": "172.25.XX.XX",
    "data": {
        "operate_time": "2024-04-29T11:25:48",
        "client_ip": "202.**.**.1",
        "env_id": "60000******",
        "from": "batch******@top",
        "rcpt": "xxx******@aliyun.com",
        "msg_id": "1df******@******",
        "event": "dm:Trace:Click",
        "region": "cn-hangzhou",
        "url": "https://www.aliyun.com",
        "outbound_ip": "102.**.**.1",
        "esp": "*mail.com",
        "ip_pool_id": "10306c37-****-****-a82f-1dafb56a9dd2",
        "is_dedicated_ip": true,
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X ****) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1",
        "tag": "xxxxx"
    }
}

data欄位包含的參數解釋如下表所示。

參數

類型

樣本值

描述

operate_time

String

2024-04-29T11:25:48

事件操作時間。

client_ip

String

202.**.**.1

點擊事件的用戶端IP。

env_id

String

60000******

發送郵件時系統返回的郵件ID。

from

String

batch****@top

寄件者地址。

rcpt

String

xxx******@aliyun.com

收件者地址。

msg_id

String

1df******@******

郵件中的Message-ID欄位。

event

String

dm:Trace:Click

事件類型。

region

String

cn-hangzhou

事件發生的地區。

url

String

https://www.aliyun.com

點擊的URL。

outbound_ip

String

102.**.**.1

發送郵件的出口IP。

esp

String

*mail.com

收信人的電子郵件供應商分類。

ip_pool_id

String

10306c37-****-****-a82f-1dafb56a9dd2

發送郵件使用的IP池的ID。

is_dedicated_ip

Boolean

true

是否使用了獨立IP。

user_agent

String

Mozilla/5.0 (Macintosh; Intel Mac OS X ****) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1

點擊事件的UserAgent。

tag

String

xxxxx

發送郵件使用的tag。

開啟事件

開啟事件時,事件匯流排EventBridge接收到的樣本事件如下所示。

{
    "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:Trace:Open",
    "aliyunaccountid": "123456789098****",
    "aliyunpublishtime": "2020-11-19T21:04:42Z",
    "aliyuneventbusname": "default",
    "aliyunregionid": "cn-hangzhou",
    "aliyunpublishaddr": "172.25.XX.XX",
    "data": {
        "operate_time": "2024-04-29T11:25:48",
        "client_ip": "202.**.**.1",
        "env_id": "60000******",
        "from": "batch******@top",
        "rcpt": "xxx******@aliyun.com",
        "msg_id": "1df******@******",
        "event": "dm:Trace:Open",
        "region": "cn-hangzhou",
        "outbound_ip": "102.**.**.1",
        "esp": "*mail.com",
        "ip_pool_id": "10306c37-****-****-a82f-1dafb56a9dd2",
        "is_dedicated_ip": true,
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X ****) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1",
        "tag": "xxxxx"
    }
}

data欄位包含的參數解釋如下表所示。

參數

類型

樣本值

描述

operate_time

String

2024-04-29T11:25:48

事件操作時間。

client_ip

String

192.168.XX.XX

開啟事件的用戶端IP。

env_id

String

60000******

發送郵件時系統返回的郵件ID。

from

String

batch****@top

寄件者地址。

rcpt

String

a****@aliyun.com

收件者地址。

msg_id

String

1df****@example.com

郵件中的Message-ID欄位。

event

String

dm:Trace:Click

事件類型。

region

String

cn-hangzhou

事件發生的地區。

outbound_ip

String

102.**.**.1

發送郵件的出口IP。

esp

String

*mail.com

收信人的電子郵件供應商分類。

ip_pool_id

String

10306c37-****-****-a82f-1dafb56a9dd2

發送郵件使用的IP池的ID。

is_dedicated_ip

Boolean

true

是否使用了獨立IP。

user_agent

String

Mozilla/5.0 (Macintosh; Intel Mac OS X ****) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1

開啟事件的UserAgent。

tag

String

xxxxx

發送郵件使用的tag。

地址校正灰名單非同步結果

地址校正灰名單非同步結果時,事件匯流排EventBridge接收到的樣本事件如下所示。

{
    "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:Validator:GrayListResult",
    "aliyunaccountid": "123456789098****",
    "aliyunpublishtime": "2020-11-19T21:04:42Z",
    "aliyuneventbusname": "default",
    "aliyunregionid": "cn-hangzhou",
    "aliyunpublishaddr": "172.25.XX.XX",
    "data": {
        "request_id": "45ef4dewdwe1-7c35-447a-bd93-fab****",
        "submission_time": "1763541726",
        "completion_time": "1763541793",
        "email": "xxxxxx@yyy.com",
        "status": "INVALID",
        "sub_status": "MAILBOX_NOT_EXISTS",
        "provider": "XXXX",
        "is_free_mail": false,
        "local_part": "xxxxxx",
        "domain_part": "yyy.com"
    }
}

data欄位包含的參數解釋如下表所示。

參數

類型

樣本值

描述

request_id

String

45ef4dewdwe1-7c35-447a-bd93-fab****

提交請求時OPENAPI返回的請求ID

submission_time

String

1763541726

提交校正請求時間(UTC時間)

completion_time

String

1763541793

校正完成時間(UTC時間)

email

String

xxxxxx@yyy.com

校正的電子郵件地址

status

String

INVALID

校正得到的電子郵件地址狀態

sub_status

String

MAILBOX_NOT_EXISTS

校正得到的電子郵件地址子狀態,是對狀態的詳細描述

provider

String

XXXX

地址的電子郵件供應商分類

is_free_mail

Boolean

false

地址是否為免費郵箱

local_part

String

xxxxxx

文法校正解析得到的電子郵件地址的本地部分(經過小寫化與去掉+號部分)

domain_part

String

yyy.com

文法校正解析得到的電子郵件地址的網域名稱部分(經過小寫化)

相關文檔:Direct Mail事件

說明

事件詳情裡的時間欄位統一是UTC時間格式

2.進行發信驗證,通過test@hangzhou.dmtest.top發送一封郵件;

image.png

3.在輕量訊息佇列的隊列中(本樣本和設定事件分發流程一樣,採用輕量訊息佇列作為事件目標接收事件訊息,使用者可自行設定事件目標)可查詢到此條訊息。

image.png

4.使用其他發信地址發信後,在事件匯流排-事件追蹤中查詢到了該事件的詳情,但在輕量訊息佇列側,不會收到此條事件訊息,即實現了指定發信地址的回調通知。image.png

image.png

image.png