設置異步通知
本文介紹如何設置異步通知功能,異步通知僅對此功能的存量用戶開放,未使用過異步通知的用戶請使用全新功能”事件分發(fā)“-設置事件分發(fā)。
通過郵件推送服務器發(fā)送郵件請求后, 投遞結(jié)果將按照您在輕量消息隊列中設置的事件通知規(guī)則發(fā)送至輕量消息隊列的接收終端(HTTP、消息隊列、主題)中,您可以使用輕量消息隊列的接收終端異步獲取投遞結(jié)果。
設置異步通知,首先需要在輕量消息隊列控制臺創(chuàng)建事件通知規(guī)則,然后再到郵件推送控制臺新建異步通知,所以需要開通輕量消息隊列。輕量消息隊列可能會產(chǎn)生費用。
設置異步通知時使用阿里云主賬號,輕量消息隊列目前不支持子賬號。
創(chuàng)建事件通知規(guī)則
建議在創(chuàng)建事件通知規(guī)則之前,先創(chuàng)建消息接收隊列作為事件通知接收終端。
創(chuàng)建消息接收的隊列
進入輕量消息隊列控制臺。
單擊左側(cè)導航欄中隊列,進入隊列頁面。
單擊頁面創(chuàng)建隊列按鈕,將會彈出新建隊列對話框。
輸入隊列名稱,其他按默認值即可,然后單擊確認。
創(chuàng)建事件通知規(guī)則
1、在輕量消息隊列控制臺,單擊左側(cè)導航欄中事件通知。
2、單擊頁面創(chuàng)建規(guī)則按鈕,將彈出規(guī)則創(chuàng)建對話框。
3、檢查地區(qū),產(chǎn)品名稱,輸入規(guī)則名稱,選擇事件類型,添加接收終端,然后單擊確定。接收終端目前支持 HTTP、隊列兩種。您可以選擇創(chuàng)建的隊列為接收終端。
注意:新規(guī)則創(chuàng)建完成后,需要約 10 分鐘的時間才能生效。
“[事件類型]”說明見下文。
新建異步通知
異步通知分為賬戶級異步通知和發(fā)信地址級異步通知。如果您希望對所有發(fā)信地址實現(xiàn)投遞結(jié)果的異步通知,僅設置賬戶級異步通知即可。如果您希望僅對某些發(fā)信地址實現(xiàn)投遞結(jié)果的異步通知,僅設置該發(fā)信地址的發(fā)信地址異步通知即可。您也可以既設置賬戶級又設置發(fā)信地址級異步通知。因發(fā)信地址級異步通知優(yōu)先級高于賬戶級異步通知,即發(fā)信地址優(yōu)先獲取對應發(fā)信地址級異步通知設置,賬戶級異步通知設置對該發(fā)信地址以外的其他發(fā)信地址生效。
創(chuàng)建賬戶級異步通知
1、登錄 郵件推送管理控制臺。
2、單擊左側(cè)導航欄中異步通知進入異步通知頁面。
3、單擊頁面新建賬號級異步通知按鈕,將會彈出創(chuàng)建對話框。
4、選擇與之前選擇一致的區(qū)域,然后單擊確定。
創(chuàng)建發(fā)信地址級異步通知
1、登錄郵件推送管理控制臺。
2、單擊左側(cè)導航欄中異步通知進入異步通知頁面。
3、單擊發(fā)信地址級異步通知。
4、然后單擊頁面新建發(fā)信地址級異步通知按鈕。
5、在彈出對話框中選擇發(fā)信地址和地域,然后單擊確定。
輕量消息隊列控制臺接收隊列消息,驗證鏈路已通
通過郵件推送服務器發(fā)送郵件請求后,
1、進入輕量消息隊列控制臺。
2、單擊左側(cè)導航欄中隊列列表。
3、選擇相應區(qū)域,查看之前創(chuàng)建的隊列中的活躍消息數(shù)。
4、單擊該隊列對應的收發(fā)消息按鈕,查看具體消息。
程序如何獲取接收消息?
參照郵件推送DM
事件類型和啟用方式
事件類型目前支持如下幾類:
投遞成功:Deliver:SendSuccessfully
投遞失敗:Deliver:SendFailed
打開郵件:Deliver:Open
點擊郵件中的鏈接:Deliver:Click
發(fā)送郵件時如何開啟投遞成功或者失敗事件的統(tǒng)計?
不需要額外關心,默認會搜集投遞信息。
發(fā)送郵件時如何開啟打開或者點擊事件的統(tǒng)計?
投遞成功和投遞失敗的消息結(jié)構(gòu)
投遞成功樣例
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的說明見”參數(shù)列表”。
如何區(qū)分成功還是失敗消息?
當 err_code 不是 250 時,表示投遞失敗事件消息。
當 err_code 是 250 時,表示投遞成功事件消息。
參數(shù)列表
名稱 | 描述 |
X-Notify-Message-ID | 設置的自定義頭X-Notify-Message-ID |
env_id | 系統(tǒng)內(nèi)ID,發(fā)信時會返回 |
msg_id | 郵件原文 Message-ID 字段 |
account | 發(fā)件人地址 |
from | 發(fā)件人地址 |
rcpt | 收件人地址 |
recv_time | 郵件接收入隊時間 |
end_time | 郵件投遞完成時間 |
status | 投遞完成結(jié)果狀態(tài)(0-成功,2-無效地址,3-接收方認為垃圾郵件,4-失敗) |
event | 事件消息的類型。deliver對應著投遞事件 |
region | 事件發(fā)生的區(qū)域 |
err_code | 投遞完成時接收方 ESP 返回碼 |
err_msg | 投遞完成時接收方 ESP 返回信息 |
failed_type | 投遞結(jié)果分類 |
關于常見failed_type的解釋:
值 | 語義和建議 |
SendOk | 投遞成功。 |
SysOutDnsResolveFail | 收信域名DNS解析失敗,一般是無效域名。請從收信列表剔除該域名。 |
SmtpMfFreq | 發(fā)信賬戶被流控。請降低您的發(fā)信頻率。 |
SmtpContSpam | 內(nèi)容被對方判斷為垃圾郵件。完善您的發(fā)信內(nèi)容,或者停止向?qū)招庞虬l(fā)送此模板的郵件。 |
SmtpAuthFail | SPF、DKIM或DMARC校驗失敗。請解析正確的SPF,檢查是否有配置DMARC記錄,并且測試下DKIM是否正確。 |
SmtpNxBox | 收信系統(tǒng)認定為無效地址,會進入您的賬號級別無效地址庫。 |
SysOutInvRcpt | 命中全局無效地址庫,如您確認該地址有效,可向阿里云同學反饋,或選擇不啟用全局級別無效地址庫。 |
SmtpRcptFreq | 收信系統(tǒng)疲勞度控制。請暫時停止向當前收信人發(fā)信。 |
SmtpSslTlsErr | 臨時性錯誤,由于網(wǎng)絡問題或?qū)Χ瞬豢捎茫琒SL/TLS連接失敗,請重試。 |
SmtpTempErr | 臨時錯誤。請重試。 |
SmtpZPermErr | 永久錯誤。請不要重試,根據(jù)對方返回信息確認具體的錯誤原因。 |
SysOutSocksConnError | 鏈接錯誤次數(shù)過多,可能原因是對端拒絕鏈接或者收信域名MX地址不對。 |
SmtpFullBox | 收信人郵箱已滿,請停止發(fā)信給該收信人,可聯(lián)系收信方先清理郵箱或反饋給收信方服務商處理。 |
SmtpIPFreq | 收信系統(tǒng)對IP進行流控,請降低發(fā)信速度,稍后重試。 |
SysOutSocksError | 鏈接錯誤次數(shù)過多,可能原因是對端拒絕鏈接或者收信域名MX地址不對。 |
SysOutConnError | 鏈接錯誤次數(shù)過多,可能原因是對端拒絕鏈接或者收信域名MX地址不對。 |
SysOutConnTooMuch | 鏈接錯誤次數(shù)過多,可能原因是對端拒絕鏈接或者收信域名MX地址不對。 |
UnkSmtpError | 未知錯誤,請根據(jù)錯誤信息,對應檢查發(fā)信設置與收信地址,確認無誤后稍后再發(fā)。 |
SmtpMfdFreq | 發(fā)信域名被流控。降低您的發(fā)信頻率。 |
SmtpMiscSpam | 內(nèi)容被對方判斷為垃圾郵件。完善您的發(fā)信內(nèi)容。 |
SmtpMfBad | 發(fā)信人被收信系統(tǒng)列黑,請停止向?qū)Ψ桨l(fā)信,或者聯(lián)系收信方系統(tǒng),解除列黑。 |
SmtpSpfFail | SPF校驗失敗。請解析正確的SPF。 |
SmtpMfLimit | 發(fā)信人全天發(fā)送郵件的數(shù)量超過收信域限制。請第二天重試。 |
SmtpDmaFail | 已配置DMARC的域名,由于SPF或者DKIM校驗失敗而被攔截。請解析正確的SPF,并且測試下DKIM是否正確。 |
SmtpProtErr | 對端協(xié)議交互錯誤,可向阿里云同學反饋定位排查。 |
SysOutRecipientReportedSpam | 收信人舉報了您的發(fā)信地址或者域名,請停止向該收信人/收信域發(fā)信。 |
SysOutHoneypot | 收信人是蜜罐地址。請停止向此地址發(fā)信,否則會受到反垃圾組織的懲罰。 |
SysOutRecipientUnsubscribed | 收信人退訂了您發(fā)信地址或者域名,請停止向該收信人/收信域發(fā)信。 |
SysIncomingInvRcpt | 命中全局無效地址庫,如您確認該地址有效,可向阿里云同學反饋,或選擇不啟用全局級別無效地址庫 |
SysOutRcptOnAccountLevelBounceList | 命中賬號級別無效地址庫,如您確認該地址有效,可在無效地址庫頁面進行刪除,或選擇不啟用賬號級別無效地址庫。 |
SmtpDbl | 命中spamhaus域名黑名單,請用戶暫停發(fā)信,前往check.spamhaus.org申請解除,解除列黑后,請用戶注意發(fā)信質(zhì)量,不要向未訂閱用戶發(fā)信。 |
打開郵件事件的消息結(jié)構(gòu)
樣例
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
參數(shù)列表
名稱 | 描述 |
event | 事件名稱 |
region | 事件發(fā)生的區(qū)域 |
env_id | 系統(tǒng)內(nèi)ID,發(fā)信時會返回 |
msgid | 郵件原文 Message-ID 字段 |
from | 發(fā)件人地址 |
rcpt | 收件人地址 |
operate_time | 事件操作時間 |
點擊郵件事件的消息結(jié)構(gòu)
樣例
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
參數(shù)列表
名稱 | 描述 |
event | 事件名稱 |
region | 事件發(fā)生的區(qū)域 |
env_id | 系統(tǒng)內(nèi)ID,發(fā)信時會返回 |
msgid | 郵件原文 Message-ID 字段 |
from | 發(fā)件人地址 |
rcpt | 收件人地址 |
operate_time | 事件操作時間 |
url | 點擊的URL |