本文介紹如何設定非同步通知功能,非同步通知僅對此功能的存量使用者開放,未使用過非同步通知的使用者請使用全新功能”事件分發“-設定事件分發。
通過Direct Mail伺服器發送郵件請求後, 投遞結果將按照您在輕量訊息佇列中設定的事件通知規則發送至輕量訊息佇列的接收終端(HTTP、訊息佇列、主題)中,您可以使用輕量訊息佇列的接收終端非同步擷取投遞結果。
設定非同步通知,首先需要在輕量訊息佇列控制台建立事件通知規則,然後再到Direct Mail控制台建立非同步通知,所以需要開通輕量訊息佇列。輕量訊息佇列可能會產生費用。
設定非同步通知時使用阿里雲主帳號,輕量訊息佇列目前不支援子帳號。
建立事件通知規則
建議在建立事件通知規則之前,先建立訊息接收隊列作為事件通知接收終端。
建立訊息接收的隊列
進入輕量訊息佇列控制台。
單擊左側導覽列中隊列,進入隊列頁面。
單擊頁面建立隊列按鈕,將會彈出建立隊列對話方塊。
輸入隊列名稱,其他按預設值即可,然後單擊確認。
建立事件通知規則
1、在輕量訊息佇列控制台,單擊左側導覽列中事件通知。
2、單擊頁面建立規則按鈕,將彈出規則建立對話方塊。
3、檢查地區,產品名稱,輸入規則名稱,選擇事件類型,添加接收終端,然後單擊確定。接收終端目前支援 HTTP、隊列兩種。您可以選擇建立的隊列為接收終端。
注意:新規則建立完成後,需要約 10 分鐘的時間才會生效。
“[事件類型]”說明見下文。
建立非同步通知
非同步通知分為賬戶級非同步通知和發信地址級非同步通知。如果您希望對所有發信地址實現投遞結果的非同步通知,僅設定賬戶級非同步通知即可。如果您希望僅對某些發信地址實現投遞結果的非同步通知,僅設定該發信地址的發信地址非同步通知即可。您也可以既設定賬戶級又設定發信地址級非同步通知。因發信地址級非同步通知優先順序高於賬戶級非同步通知,即發信地址優先擷取對應發信地址級非同步通知設定,賬戶級非同步通知設定對該發信地址以外的其他發信地址生效。
建立賬戶級非同步通知
1、登入 Direct Mail管理主控台。
2、單擊左側導覽列中非同步通知進入非同步通知頁面。
3、單擊頁面建立帳號級非同步通知按鈕,將會彈出建立對話方塊。
4、選擇與之前選擇一致的地區,然後單擊確定。
建立發信地址級非同步通知
1、登入Direct Mail管理主控台。
2、單擊左側導覽列中非同步通知進入非同步通知頁面。
3、單擊發信地址級非同步通知。
4、然後單擊頁面建立發信地址級非同步通知按鈕。
5、在彈出對話方塊中選擇發信地址和地區,然後單擊確定。
輕量訊息佇列控制台接收隊列訊息,驗證鏈結路已通
通過Direct Mail伺服器發送郵件請求後,
1、進入輕量訊息佇列控制台。
2、單擊左側導覽列中隊列列表。
3、選擇相應地區,查看之前建立的隊列中的活躍訊息數。
4、單擊該隊列對應的收發訊息按鈕,查看具體訊息。
事件類型和啟用方式
事件類型目前支援如下幾類:
投遞成功:Deliver:SendSuccessfully
投遞失敗:Deliver:SendFailed
開啟郵件:Deliver:Open
點擊郵件中的連結:Deliver:Click
發送郵件時如何開啟投遞成功或者失敗事件的統計?
不需要額外關心,預設會搜集投遞資訊。
發送郵件時如何開啟開啟或者點擊事件的統計?
投遞成功和投遞失敗的訊息結構
投遞成功範例
X-Notify-Message-ID=3121639760461820&env_id=12769055421&msg_id=37483d95-7a08-41fb-9738-3d3ffa24d415@example.com&account=example@example.com&
from=a***@example.net&rcpt=a1***@example.com&recv_time=2017-03-29 14:22:40&end_time=2017-03-29 14:22:43&status=0&event=deliver®ion=cn-hangzhou&err_code=250&err_msg=250 Send Mail OK&failed_type=SendOk
投遞失敗範例
X-Notify-Message-ID=3121639760461824&env_id=12625010655&msg_id=ac349efc-0d79-489b-affa-f178dce3e49e@example.com&account=example@example.com&
from=a***@example.net&rcpt=a1***@example.net&recv_time=2017-03-28 19:09:49&end_time=2017-03-28 19:09:51&status=4&event=deliver®ion=cn-hangzhou&err_code=524&err_msg=524 Host not found by dns resolve [@ou070302]&failed_type=SysOutDnsResolveFail
如何解析?
以”&”分隔key-val對,key-val對用”=”分隔。key的說明見”參數列表”。
如何區分成功還是失敗訊息?
當 err_code 不是 250 時,表示投遞失敗事件訊息。
當 err_code 是 250 時,表示投遞成功事件訊息。
參數列表
名稱 | 描述 |
X-Notify-Message-ID | 設定的自訂頭X-Notify-Message-ID |
env_id | 系統內ID,發信時會返回 |
msg_id | 郵件原文 Message-ID 欄位 |
account | 寄件者地址 |
from | 寄件者地址 |
rcpt | 收件者地址 |
recv_time | 郵件接收入隊時間 |
end_time | 郵件投遞完成時間 |
status | 投遞完成結果狀態(0-成功,2-無效地址,3-接收方認為垃圾郵件,4-失敗) |
event | 事件訊息的類型。deliver對應著投遞事件 |
region | 事件發生的地區 |
err_code | 投遞完成時接收方 ESP 返回碼 |
err_msg | 投遞完成時接收方 ESP 返回資訊 |
failed_type | 投遞結果分類 |
關於常見failed_type的解釋:
值 | 語義和建議 |
SendOk | 投遞成功。 |
SysOutDnsResolveFail | 收信網域名稱DNS解析失敗,一般是無效網域名稱。請從收信列表剔除該網域名稱。 |
SmtpMfFreq | 發信賬戶被流控。請降低您的發信頻率。 |
SmtpContSpam | 內容被對方判斷為垃圾郵件。完善您的發信內容,或者停止向對應收信域發送此模板的郵件。 |
SmtpAuthFail | SPF、DKIM或DMARC校正失敗。請解析正確的SPF,檢查是否有配置DMARC記錄,並且測試下DKIM是否正確。 |
SmtpNxBox | 收信系統認定為無效地址,會進入您的帳號層級無效地址庫。 |
SysOutInvRcpt | 命中全域無效地址庫,如您確認該地址有效,可向阿里雲同學反饋,或選擇不啟用全域層級無效地址庫。 |
SmtpRcptFreq | 收信系統疲勞度控制。請暫時停止向當前收信人發信。 |
SmtpSslTlsErr | 臨時性錯誤,由於網路問題或對端不可用,SSL/TLS串連失敗,請重試。 |
SmtpTempErr | 臨時錯誤。請重試。 |
SmtpZPermErr | 永久錯誤。請不要重試,根據對方返回資訊確認具體的錯誤原因。 |
SysOutSocksConnError | 連結錯誤次數過多,可能原因是對端拒絕連結或者收信網域名稱MX地址不對。 |
SmtpFullBox | 收信人郵箱已滿,請停止發信給該收信人,可聯絡收信方先清理郵箱或反饋給收信方服務位址理。 |
SmtpIPFreq | 收信系統對IP進行流控,請降低發信速度,稍後重試。 |
SysOutSocksError | 連結錯誤次數過多,可能原因是對端拒絕連結或者收信網域名稱MX地址不對。 |
SysOutConnError | 連結錯誤次數過多,可能原因是對端拒絕連結或者收信網域名稱MX地址不對。 |
SysOutConnTooMuch | 連結錯誤次數過多,可能原因是對端拒絕連結或者收信網域名稱MX地址不對。 |
UnkSmtpError | 未知錯誤,請根據錯誤資訊,對應檢查發信設定與收信地址,確認無誤後稍後再發。 |
SmtpMfdFreq | 發信網域名稱被流控。降低您的發信頻率。 |
SmtpMiscSpam | 內容被對方判斷為垃圾郵件。完善您的發信內容。 |
SmtpMfBad | 發信人被收信系統列黑,請停止向對方發信,或者聯絡收信方系統,解除列黑。 |
SmtpSpfFail | SPF校正失敗。請解析正確的SPF。 |
SmtpMfLimit | 發信人全天發送郵件的數量超過收信域限制。請第二天重試。 |
SmtpDmaFail | 已配置DMARC的網域名稱,由於SPF或者DKIM校正失敗而被攔截。請解析正確的SPF,並且測試下DKIM是否正確。 |
SmtpProtErr | 對端協議互動錯誤,可向阿里雲同學反饋定位排查。 |
SysOutRecipientReportedSpam | 收信人舉報了您的發信地址或者網域名稱,請停止向該收信人/收信域發信。 |
SysOutHoneypot | 收信人是蜜罐地址。請停止向此地址發信,否則會受到反垃圾組織的懲罰。 |
SysOutRecipientUnsubscribed | 收信人退訂了您發信地址或者網域名稱,請停止向該收信人/收信域發信。 |
SysIncomingInvRcpt | 命中全域無效地址庫,如您確認該地址有效,可向阿里雲同學反饋,或選擇不啟用全域層級無效地址庫 |
SysOutRcptOnAccountLevelBounceList | 命中帳號層級無效地址庫,如您確認該地址有效,可在無效地址庫頁面進行刪除,或選擇不啟用帳號層級無效地址庫。 |
SmtpDbl | 命中spamhaus網域名稱黑名單,請使用者暫停發信,前往check.spamhaus.org申請解除,解除列黑後,請使用者注意發信品質,不要向未訂閱使用者發信。 |
開啟郵件事件的訊息結構
範例
event=Open®ion=cn-hangzhou&env_id=270016664318&msg_id=1688486074.7.1673022065730@example.com&from=a***@example.net&rcpt=a***@example.net&operate_time=2023-01-07 01:43:51
參數列表
名稱 | 描述 |
event | 事件名稱 |
region | 事件發生的地區 |
env_id | 系統內ID,發信時會返回 |
msgid | 郵件原文 Message-ID 欄位 |
from | 寄件者地址 |
rcpt | 收件者地址 |
operate_time | 事件操作時間 |
點擊郵件事件的訊息結構
範例
event=Click®ion=cn-hangzhou&env_id=17870283365788973187&msg_id=02785cb2-71b1-4fb5-bdbb-a49dfbe3326f@example.com&from=a***@example.net&
rcpt=a1***@example.net&operate_time=2023-01-12 09:54:09&url=httpsxxx
參數列表
名稱 | 描述 |
event | 事件名稱 |
region | 事件發生的地區 |
env_id | 系統內ID,發信時會返回 |
msgid | 郵件原文 Message-ID 欄位 |
from | 寄件者地址 |
rcpt | 收件者地址 |
operate_time | 事件操作時間 |
url | 點擊的URL |