DirectMail'i EventBridge ile entegre ederek e-posta teslim bildirimlerini DingTalk, Message Queue for Apache RocketMQ ve HTTP uç noktaları gibi hedeflere yönlendirin.
Olay veriyolunu yapılandırdıktan sonra, DirectMail üzerinden gönderilen e-postaların teslim sonuçları belirlediğiniz yönlendirme kurallarına göre DingTalk, Message Queue for Apache RocketMQ ve HTTP gibi belirtilen olay hedeflerine iletilir. Bu sayede teslim sonuçlarını eşzamansız olarak alabilirsiniz.
Olay yönlendirmeyi kurmak için aşağıdaki adımları uygulayın.
Olay dağıtımını etkinleştirin
DirectMail konsolunda olay bildirimi anahtarını açın.

EventBridge'i etkinleştirin ve yetkilendirin
1. Alibaba Cloud ana sayfasında EventBridge'i arayın ve hizmeti ücretsiz olarak etkinleştirin.


Bir olay kuralı oluşturun
EventBridge konsolunda cloud services için olay veriyoluna gidin > Kural Oluştur. DirectMail için bir kural adı ve açıklaması girin.

Olay desenini yapılandırın. Olay kaynağı türü olarak Alibaba Cloud resmi olay kaynağını seçin ve olay kaynağı olarak acs.dm değerini belirtin. Desteklenen olay türleri: Send Failure, Send Success, Link Click ve Email Open. Gerektiğinde olay türlerini ekleyin; desteklenmeyen türler filtrelenecektir.
Olay hedefini yapılandırmak için DingTalk, Message Service (MNS) veya HTTP gibi bir hizmet türü seçin. Ayrıntılar için bkz. Olay kurallarını yönetme.
Bu örnekte olay hedefi olarak Message Queue for MQTT kullanılmaktadır. Hedef kuyruğu belirtin. (Message Queue for MQTT'i etkinleştirmek ve bir kuyruk oluşturmak için aşağıdaki "Message Queue for MQTT'i Etkinleştirin ve bir alıcı kuyruk oluşturun" bölümünü izleyin.) Varsayılan mesaj gövdesi, Base64 kodlaması uygulanmamış tam olaydır. Gerekirse yeniden deneme ve dead-letter seçeneklerini yapılandırın, ardından Kural Oluştur'u tıklayın.
Kuralı oluşturduktan sonra EventBridge konsolunda görüntüleyin.

Olay türleri ve değişiklikler
Desteklenen olay türleri
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EventBridge, bir e-posta gönderildikten sonraki 30 gün içinde olayları alır.
Olay türleri için istatistikleri yapılandırma
Olay Kuralları > Olay Deseni Düzenle > Olay Türü yolunu izleyerek olay türünü değiştirin.


Açma ve tıklama izleme için ön koşullar
E-posta açma ve tıklama olayları için bildirim almak amacıyla önce veri izlemeyi etkinleştirin. Veri izlemeyi etkinleştirme.
Olay mesajlarını alın ve bağlantıları doğrulayın
Bu örnekte, yukarıda yapılandırılan hafif mesaj kuyruğu kullanılarak olay teslim yolu doğrulanmaktadır.
Hafif bir mesaj kuyruğu kurun
Message Queue for MQTT konsoluna gidin. Message Queue for MQTT etkinleştirilmemişse etkinleştirmek için talimatları izleyin.
Sol gezinme bölmesinde Queues öğesini tıklayın.
Create Queue öğesini tıklayın.
delivery-result-queuegibi bir kuyruk adı girin. Varsayılan ayarları koruyun ve OK öğesini tıklayın.

Olay dağıtımını tetikleyin
DirectMail üzerinden bir e-posta gönderdikten sonra EventBridge konsolunda olay izlemesini görüntüleyin.


Olay hedefi sonuçları
Hafif mesaj kuyruğu konsolunda EventBridge hedefi olarak yapılandırılan kuyruğu (delivery-result-queue) seçin ve Send and Receive Messages öğesini tıklayın.

Olay mesajını görüntülemek için Receive Messages öğesini tıklayın, ardından tam içeriği görmek için Details öğesini tıklayın. Olay kimliği EventBridge kaydıyla eşleşiyorsa Message Service'e teslim onaylanmış olur.


Örnek: Gönderen adresi olay iletme işlevini yapılandırma
Yukarıda yapılandırılan olay dağıtımı, DirectMail'deki tüm gönderim alanlarına ve adreslerine uygulanır. Belirli koşullara (örneğin bir gönderen adresine) göre olayları filtrelemek için olay kuralı JSON'unu değiştirebilirsiniz.
Aşağıdaki örnekte, test@hangzhou.dmtest.top gönderen adresine ait DirectMail olaylarını bir olay hedefine yönlendiren bir kural yapılandırılmaktadır.
1. Bir olay kuralı oluştururken, olayları alanlarına göre filtrelemek için bir olay deseni belirtin.

Bu örnekte aşağıdaki desen kullanılmaktadır:
{
"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"
]
}
}
Aşağıda tam bir olay mesaj gövdesi verilmiştir. İçeriğine ve yapısına dayalı olarak bir olay deseni yazın.
Olay desenindeki tüm alan adları olay gövdesinde mevcut olmalıdır.
Olay desenindeki alan adlarının iç içe geçmiş yapısı olayın yapısıyla eşleşmelidir.
Eşleşme birebir, karakter karakter ve büyük/küçük harfe duyarlıdır. Dizeler normalleştirilmez.
Desendeki değerler JSON kurallarına uymalıdır: Tırnak işaretleri içinde dizeler, sayılar ve tırnak işareti olmadan true, false ve null anahtar sözcükleri.
Olay desenleri hem AND hem de OR mantığını destekler. Bir desen içindeki farklı key değerleri AND mantığı kullanır. Bir key için bir değer dizisi OR mantığı kullanır.
Varsayılan olay mesaj gövdesi:
E-posta teslimi başarısız oldu
Bir e-posta teslim edilemediğinde, EventBridge aşağıdaki örneğe benzer bir olay alır.
{
"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"
}
Aşağıdaki tabloda data alanındaki parametreler açıklanmaktadır.
Parametre | Tür | Örnek | Açıklama |
header | Object | E-postayla ilgili üstbilgiler. | |
X-Notify-Message-ID | String | test****@example.com | Özel X-Notify-Message-ID üstbilgisi. |
env_id | String | 60000**** | E-posta gönderildiğinde sistem tarafından döndürülen e-posta kimliği. |
account | String | batch****@top | Gönderenin e-posta adresi. |
from | String | batch****@top | Gönderenin e-posta adresi. |
rcpt | String | a****@aliyun.com | Alıcının e-posta adresi. |
msg_id | String | 1df****@example.com | E-postanın Message-ID alanı. |
channel_name | String | bg:vip_* | Bu teslimat için kullanılan giden IP adresinin ait olduğu kanalın adı. |
outbound_ip | String | 8...7 | Bu teslimat için kullanılan giden IP adresi. |
send_time | String | 2024-04-29T11:07:04 | E-postanın kabul edildiği zaman. |
deliver_time | String | 2024-04-29T11:07:12 | E-posta tesliminin tamamlandığı zaman. |
status | String | 2 | Teslim durumu.
|
event | String | dm:Deliver:Fail | Olay mesajının türü. Bu, type parametresiyle aynıdır. |
region | String | cn-hangzhou | Olayın gerçekleştiği bölge. |
err_code | String | 554 | Teslim tamamlandığında alıcının e-posta hizmet sağlayıcısı (ESP) tarafından döndürülen kod. |
err_msg | String | 554 RCPT a****@aliyun.com dosn't exist | Teslim tamamlandığında alıcının ESP'si tarafından döndürülen mesaj. |
failed_type | String | SmtpNxBox | Teslim sonucunun sınıflandırması. |
esp | String | *mail.com | Alıcının e-posta sağlayıcısının sınıflandırması. |
ip_pool_id | String | 10306c37-**-**-a82f-1dafb56a9dd2 | E-postayı göndermek için kullanılan IP havuzunun kimliği. |
is_dedicated_ip | Boolean | true | Özel bir IP adresinin kullanılıp kullanılmadığını belirtir. |
tag | String | xxxxx | E-postayı göndermek için kullanılan etiket. |
E-posta teslimi başarılı oldu
Bir e-posta başarıyla teslim edildiğinde, EventBridge aşağıdaki örneğe benzer bir olay alır.
{
"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 alanındaki parametrelerin açıklaması için bkz. Parametre açıklamaları.
E-posta FBL rapor verileri
Bir e-posta geri bildirim döngüsü (FBL) aracılığıyla raporlandığında, EventBridge aşağıdaki gibi bir olay alır:
{
"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 alanındaki parametreler:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E-posta yeniden abonelik verileri
Bir alıcı yeniden abone olduğunda, EventBridge aşağıdaki gibi bir olay alır:
{
"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 alanındaki parametreler:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E-posta abonelik iptali verileri
Bir alıcı aboneliğini iptal ettiğinde, EventBridge aşağıdaki gibi bir olay alır:
{
"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 alanındaki parametreler:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tıklama olayı
Bir alıcı e-postadaki bir bağlantıyı tıkladığında, EventBridge aşağıdaki örneğe benzer bir olay alır.
{
"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"
}
}
Aşağıdaki tabloda data alanındaki parametreler açıklanmaktadır.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Açma olayı
Bir olay gerçekleştiğinde, EventBridge aşağıdaki örnek olayı alır.
{
"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"
}
}
Aşağıdaki tabloda data alanındaki parametreler açıklanmaktadır.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gri liste adres doğrulamasının eşzamansız sonucu
Eşzamansız gri liste adres doğrulama sonucu mevcut olduğunda, EventBridge aşağıdaki gibi bir olay alır:
{
"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 alanındaki parametreler:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Olay ayrıntılarındaki tüm zaman alanları UTC cinsindendir.
2. Göndereni doğrulamak için test@hangzhou.dmtest.top adresinden bir e-posta gönderin.

3. Mesaj için Message Service (MNS) kuyruğunu kontrol edin. (Bu örnekte olay hedefi olarak Message Service (MNS) kullanılmaktadır. Farklı bir hedef yapılandırabilirsiniz.)

4. Farklı bir gönderen adresinden bir e-posta gönderin, ardından EventBridge > olay izlemesini kontrol edin. Olay izlemede görünür ancak Message Queue for Apache RocketMQ'ya iletilmez; bu da bildirimlerin yalnızca belirtilen gönderen adresi tarafından tetiklendiğini doğrular.

