All Products
Search
Document Center

Direct Mail:Konfigurasi routing event

Last Updated:Jun 04, 2026

Integrasikan DirectMail dengan EventBridge untuk mengarahkan notifikasi pengiriman email ke target seperti DingTalk, Message Queue for Apache RocketMQ, dan HTTP endpoints.

Setelah Anda mengonfigurasi event bus, hasil pengiriman email yang dikirim melalui DirectMail diarahkan ke target event tertentu—seperti DingTalk, Message Queue for Apache RocketMQ, dan HTTP—berdasarkan aturan routing Anda. Hal ini memungkinkan pengambilan hasil pengiriman secara asinkron.

Lengkapi langkah-langkah berikut untuk menyiapkan routing event.

Aktifkan distribusi event

Nyalakan sakelar notifikasi event di Konsol DirectMail.

b3070724625e6b3377fe779d96bf76ec

Aktifkan dan otorisasi EventBridge

1. Cari EventBridge di halaman utama Alibaba Cloud dan aktifkan layanan tersebut secara gratis.

image.png

image.png

Buat aturan event

Di Konsol EventBridge, navigasikan ke event bus untuk layanan cloud > Create Rule. Masukkan nama dan deskripsi aturan untuk DirectMail.

image.png

Konfigurasikan pola event. Pilih Alibaba Cloud official event source sebagai tipe sumber event dan acs.dm sebagai sumber event. Jenis event yang didukung: Send Failure, Send Success, Link Click, dan Email Open. Tambahkan jenis event sesuai kebutuhan; jenis yang tidak didukung akan difilter.

Untuk mengonfigurasi target event, pilih tipe layanan seperti DingTalk, Message Service (MNS), atau HTTP. Untuk detailnya, lihat Kelola aturan event.

Contoh ini menggunakan Message Queue for MQTT sebagai target event. Tentukan antrian tujuan. (Untuk mengaktifkan Message Queue for MQTT dan membuat antrian, ikuti bagian "Aktifkan Message Queue for MQTT dan buat antrian penerima" di bawah.) Isi pesan default adalah event lengkap tanpa encoding Base64. Konfigurasikan opsi retry dan dead-letter sesuai kebutuhan, lalu klik Create Rule.

Setelah membuat aturan, lihat aturan tersebut di Konsol EventBridge.

image.png

Jenis event dan modifikasi

Jenis event yang didukung

Jenis peristiwa

Nilai parameter type

Pengiriman email gagal

dm:Deliver:Fail

Pengiriman email berhasil

dm:Deliver:Succeed

Data laporan FBL email

dm:Feedback:FblReport

Data resubskripsi email

dm:Feedback:Subscribe 

Data unsubskripsi email

dm:Feedback:UnSubscribe

Event klik

dm:Trace:Click

Event pembukaan

dm:Trace:Open

Hasil asinkron validasi alamat graylist

dm:Validator:GrayListResult

Catatan

EventBridge menerima event hingga 30 hari setelah email dikirim.

Mengonfigurasi statistik untuk jenis event

Klik Event Rules > Edit Event Pattern > Event Type untuk mengubah jenis event.

image.png

image.png

Prasyarat untuk pelacakan pembukaan dan klik

Untuk menerima notifikasi event pembukaan dan klik email, aktifkan terlebih dahulu data tracking. Aktifkan data tracking.

Menerima pesan event dan memverifikasi tautan

Contoh ini menggunakan antrian pesan ringan yang dikonfigurasi di atas untuk memverifikasi jalur pengiriman event.

Siapkan antrian pesan ringan

  1. Buka Konsol Message Queue for MQTT. Jika Message Queue for MQTT belum diaktifkan, ikuti petunjuk untuk mengaktifkannya.

  2. Di panel navigasi kiri, klik Queues.

  3. Klik Create Queue.

  4. Masukkan nama antrian, misalnya delivery-result-queue. Pertahankan pengaturan default dan klik OK.

image.png

Distribusi event pemicu

Setelah mengirim email melalui DirectMail, lihat jejak event di Konsol EventBridge.image.png

image.png

image.png

Hasil target peristiwa

Di Konsol antrian pesan ringan, pilih antrian yang dikonfigurasi sebagai target EventBridge (delivery-result-queue) dan klik Send and Receive Messages.

image.png

Klik Receive Messages untuk melihat pesan event, lalu klik Details untuk melihat isi lengkapnya. Pengiriman ke Message Service dikonfirmasi jika ID event sesuai dengan catatan EventBridge.image.png

image.png

image.png

Contoh: Konfigurasi penerusan event berdasarkan alamat pengirim

Distribusi event yang dikonfigurasi di atas berlaku untuk semua domain dan alamat pengirim di DirectMail. Anda dapat memodifikasi JSON aturan event untuk memfilter event berdasarkan kondisi tertentu, seperti alamat pengirim.

Contoh berikut mengonfigurasi aturan yang mengarahkan event DirectMail untuk alamat pengirim test@hangzhou.dmtest.top ke target event.

1. Saat membuat aturan event, tentukan pola event untuk memfilter event berdasarkan field-nya.

image.png

Contoh ini menggunakan pola berikut:

{
    "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"
        ]
    }
}

Berikut adalah isi lengkap pesan event. Buat pola event berdasarkan konten dan strukturnya.

  • Semua nama field dalam pola event harus ada dalam isi event.

  • Struktur bersarang nama field dalam pola event harus sesuai dengan struktur event.

  • Pencocokan bersifat eksak, karakter per karakter, dan case-sensitive. String tidak dinormalisasi.

  • Nilai dalam pola harus mengikuti aturan JSON: string diapit tanda kutip, angka, serta kata kunci tanpa tanda kutip true, false, dan null.

  • Pola event mendukung logika AND dan OR. Field key yang berbeda dalam satu pola menggunakan logika AND. Array nilai untuk satu key menggunakan logika OR.

Isi pesan event default:

Pengiriman email gagal

Saat pengiriman email gagal, EventBridge menerima event seperti contoh berikut.

{
  "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"
}

Tabel berikut menjelaskan parameter dalam field data.

Parameter

Type

Contoh

Deskripsi

header

Object

Header yang terkait dengan email.

X-Notify-Message-ID

String

test****@example.com

Header kustom X-Notify-Message-ID.

env_id

String

60000****

ID email yang dikembalikan sistem saat email dikirim.

account

String

batch****@top

Alamat email pengirim.

from

String

batch****@top

Alamat email pengirim.

rcpt

String

a****@aliyun.com

Alamat email penerima.

msg_id

String

1df****@example.com

Field Message-ID dari email.

channel_name

String

bg:vip_*

Nama channel tempat alamat IP outbound untuk pengiriman ini termasuk.

outbound_ip

String

8.*.*.7

Alamat IP outbound untuk pengiriman ini.

send_time

String

2024-04-29T11:07:04

Waktu email diterima.

deliver_time

String

2024-04-29T11:07:12

Waktu pengiriman email selesai.

status

String

2

Status pengiriman.

  • 0: Berhasil.

  • 2: Alamat tidak valid.

  • 3: Penerima menandai email sebagai spam.

  • 4: Kegagalan lainnya.

event

String

dm:Deliver:Fail

Jenis pesan event. Ini sama dengan parameter type.

region

String

cn-hangzhou

Wilayah tempat event terjadi.

err_code

String

554

Kode yang dikembalikan oleh penyedia layanan email (ESP) penerima setelah pengiriman selesai.

err_msg

String

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

Pesan yang dikembalikan oleh ISP penerima saat pengiriman selesai.

failed_type

String

SmtpNxBox

Kategorisasi hasil pengiriman.

esp

String

*mail.com

Kategorisasi penyedia email penerima.

ip_pool_id

String

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

ID pool IP yang digunakan untuk mengirim email.

is_dedicated_ip

Boolean

true

Menunjukkan apakah alamat IP khusus digunakan.

tag

String

xxxxx

Tag yang digunakan untuk mengirim email.

Pengiriman email berhasil

Saat email berhasil dikirim, EventBridge menerima event seperti contoh berikut.

{
  "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"
}

Untuk deskripsi parameter dalam field data, lihat Deskripsi parameter.

Data laporan Mail FBL

Saat email dilaporkan melalui feedback loop (FBL), EventBridge menerima event seperti berikut:

{
    "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****"
    }
}

Parameter dalam field data:

Parameter

Tipe

Contoh

Deskripsi

send_time

String

1726821644

Waktu email dikirim.

send_email

String

from@xxx.com

Alamat email pengirim.

block_email

String

to@yyy.com

Alamat email penerima yang diblokir.

subject

String

Hello Mr.xxx

Subjek email.

message_id

String

<msgid***@xxx.com>

Identifier unik email.

block_time

String

1726821667

Waktu email diblokir.

fbl_isp

String

outlook**

Penyedia layanan internet (ISP) pengirim.

fingerprint

String

SMTPD_abc****

Sidik jari email.

Data resubskripsi email

Saat penerima melakukan resubskripsi, EventBridge menerima event seperti berikut:

{
    "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"
    }
}

Parameter dalam field data:

Parameter

Tipe

Contoh

Deskripsi

operate_time

String

2024-04-29T11:25:48

Waktu operasi terjadi. Waktu dalam UTC.

env_id

String

6000*********

ID email yang dikembalikan sistem saat email dikirim.

from

String

from@xxx.com

Alamat pengirim.

rcpt

String

to@yyy.com

Alamat penerima.

client_ip

String

102.**.**.1

Alamat IP klien untuk event pembukaan

Data unsubskripsi email

Saat penerima melakukan unsubskripsi, EventBridge menerima event seperti berikut:

{
    "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"
    }
}

Parameter dalam field data:

Parameter

Tipe

Contoh

Deskripsi

operate_time

String

2024-04-29T11:25:48

Waktu operasi terjadi. Waktu dalam UTC.

env_id

String

6000*********

ID email yang dikembalikan sistem saat email dikirim.

from

String

from@xxx.com

Alamat pengirim.

rcpt

String

to@yyy.com

Alamat penerima.

client_ip

String

102.**.**.1

Alamat IP klien sumber untuk event

Event klik

Saat penerima mengklik tautan dalam email, EventBridge menerima event seperti contoh berikut.

{
    "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"
    }
}

Tabel berikut menjelaskan parameter dalam field data.

Parameter

Tipe

Contoh

Deskripsi

operate_time

String

2024-04-29T11:25:48

Waktu operasi terjadi.

client_ip

String

202.**.**.1

Alamat IP klien yang mengklik tautan.

env_id

String

60000******

ID email yang dikembalikan sistem saat email dikirim.

from

String

batch****@top

Alamat pengirim.

rcpt

String

xxx******@aliyun.com

Alamat penerima.

msg_id

String

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

Field Message-ID dalam email.

event

String

dm:Trace:Click

Jenis event.

region

String

cn-hangzhou

Wilayah tempat event terjadi.

url

String

https://www.aliyun.com

URL yang diklik.

outbound_ip

String

102.**.**.1

Alamat IP outbound yang digunakan untuk mengirim email.

esp

String

*mail.com

Kategorisasi penyedia email penerima.

ip_pool_id

String

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

ID pool IP yang digunakan untuk mengirim email.

is_dedicated_ip

Boolean

true

Menunjukkan apakah alamat IP khusus digunakan.

user_agent

String

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

User agent untuk event klik.

tag

String

xxxxx

Tag yang digunakan untuk mengirim email.

Event pembukaan

Saat event terjadi, EventBridge menerima event contoh berikut.

{
    "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"
    }
}

Tabel berikut menjelaskan parameter dalam field data.

Parameter

Tipe

Contoh

Deskripsi

operate_time

String

2024-04-29T11:25:48

Waktu operasi terjadi.

client_ip

String

192.168.XX.XX

Alamat IP klien yang membuka email.

env_id

String

60000******

ID email yang dikembalikan sistem saat email dikirim.

from

String

batch****@top

Alamat pengirim.

rcpt

String

a****@aliyun.com

Alamat penerima.

msg_id

String

1df****@example.com

Field Message-ID dalam email.

event

String

dm:Trace:Click

Jenis event.

region

String

cn-hangzhou

Wilayah tempat event terjadi.

outbound_ip

String

102.**.**.1

Alamat IP outbound yang digunakan untuk mengirim email.

esp

String

*mail.com

Kategorisasi penyedia email penerima.

ip_pool_id

String

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

ID pool IP yang digunakan untuk mengirim email.

is_dedicated_ip

Boolean

true

Menunjukkan apakah alamat IP khusus digunakan.

user_agent

String

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

User agent untuk event pembukaan.

tag

String

xxxxx

Tag yang digunakan untuk mengirim email.

Hasil asinkron validasi alamat graylist

Saat hasil validasi alamat graylist asinkron tersedia, EventBridge menerima event seperti berikut:

{
    "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"
    }
}

Parameter dalam field data:

Parameter

Tipe

Contoh

Deskripsi

request_id

String

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

ID permintaan yang dikembalikan API saat permintaan diajukan.

submission_time

String

1763541726

Waktu permintaan validasi diajukan. Waktu dalam UTC.

completion_time

String

1763541793

Waktu validasi selesai. Waktu dalam UTC.

email

String

xxxxxx@yyy.com

Alamat email yang divalidasi.

status

String

INVALID

Status alamat email setelah validasi.

sub_status

String

MAILBOX_NOT_EXISTS

Sub-status yang memberikan detail tambahan tentang hasil validasi.

provider

String

XXXX

Kategorisasi penyedia email untuk alamat tersebut.

is_free_mail

Boolean

false

Menunjukkan apakah alamat berasal dari penyedia email gratis.

local_part

String

xxxxxx

Bagian lokal alamat email, diubah menjadi huruf kecil dengan tag sub-addressing dihapus.

domain_part

String

yyy.com

Bagian domain alamat email, diubah menjadi huruf kecil.

Event dorong email

Catatan

Semua field waktu dalam detail event menggunakan UTC.

2. Kirim email dari test@hangzhou.dmtest.top untuk memverifikasi pengirim.

image.png

3. Periksa antrian Message Service (MNS) untuk pesan tersebut. (Contoh ini menggunakan Message Service (MNS) sebagai target event. Anda dapat mengonfigurasi target berbeda.)

image.png

4. Kirim email dari alamat pengirim berbeda, lalu periksa EventBridge > event trace. Event muncul dalam jejak tetapi tidak dikirim ke Message Queue for Apache RocketMQ, yang mengonfirmasi bahwa notifikasi hanya dipicu oleh alamat pengirim tertentu.image.png

image.png

image.png