全部產品
Search
文件中心

:設定非同步通知

更新時間:Oct 24, 2024

本文介紹如何設定非同步通知功能,非同步通知僅對此功能的存量使用者開放,未使用過非同步通知的使用者請使用全新功能”事件分發“-設定事件分發

通過Direct Mail伺服器發送郵件請求後, 投遞結果將按照您在輕量訊息佇列中設定的事件通知規則發送至輕量訊息佇列的接收終端(HTTP、訊息佇列、主題)中,您可以使用輕量訊息佇列的接收終端非同步擷取投遞結果。

重要
  • 設定非同步通知,首先需要在輕量訊息佇列控制台建立事件通知規則,然後再到Direct Mail控制台建立非同步通知,所以需要開通輕量訊息佇列。輕量訊息佇列可能會產生費用。

  • 設定非同步通知時使用阿里雲主帳號,輕量訊息佇列目前不支援子帳號。

建立事件通知規則

建議在建立事件通知規則之前,先建立訊息接收隊列作為事件通知接收終端。

建立訊息接收的隊列

  1. 進入輕量訊息佇列控制台

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

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

  4. 輸入隊列名稱,其他按預設值即可,然後單擊確認

image.png

建立事件通知規則

1、在輕量訊息佇列控制台,單擊左側導覽列中事件通知

2、單擊頁面建立規則按鈕,將彈出規則建立對話方塊。

3、檢查地區,產品名稱,輸入規則名稱,選擇事件類型,添加接收終端,然後單擊確定。接收終端目前支援 HTTP、隊列兩種。您可以選擇建立的隊列為接收終端。

image.png

注意:新規則建立完成後,需要約 10 分鐘的時間才會生效。

“[事件類型]”說明見下文。

建立非同步通知

非同步通知分為賬戶級非同步通知和發信地址級非同步通知。如果您希望對所有發信地址實現投遞結果的非同步通知,僅設定賬戶級非同步通知即可。如果您希望僅對某些發信地址實現投遞結果的非同步通知,僅設定該發信地址的發信地址非同步通知即可。您也可以既設定賬戶級又設定發信地址級非同步通知。因發信地址級非同步通知優先順序高於賬戶級非同步通知,即發信地址優先擷取對應發信地址級非同步通知設定,賬戶級非同步通知設定對該發信地址以外的其他發信地址生效。

建立賬戶級非同步通知

1、登入 Direct Mail管理主控台

2、單擊左側導覽列中非同步通知進入非同步通知頁面。

3、單擊頁面建立帳號級非同步通知按鈕,將會彈出建立對話方塊。

4、選擇與之前選擇一致的地區,然後單擊確定

建立帳號級非同步通知

建立發信地址級非同步通知

1、登入Direct Mail管理主控台

2、單擊左側導覽列中非同步通知進入非同步通知頁面。

3、單擊發信地址級非同步通知

4、然後單擊頁面建立發信地址級非同步通知按鈕。

5、在彈出對話方塊中選擇發信地址和地區,然後單擊確定

建立

輕量訊息佇列控制台接收隊列訊息,驗證鏈結路已通

通過Direct Mail伺服器發送郵件請求後,

1、進入輕量訊息佇列控制台

2、單擊左側導覽列中隊列列表

3、選擇相應地區,查看之前建立的隊列中的活躍訊息數。

4、單擊該隊列對應的收發訊息按鈕,查看具體訊息。

image.png

image.png

事件類型和啟用方式

事件類型目前支援如下幾類:

  • 投遞成功: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&region=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&region=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&region=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&region=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

其他相關文檔

非同步通知相關問題