设置异步通知
本文介绍如何设置异步通知功能。
通过邮件推送服务器发送邮件请求后, 投递结果将按照您在消息服务中设置的事件通知规则发送至消息服务的接收终端(HTTP、消息队列、主题)中,您可以使用消息服务的接收终端异步获取投递结果。
设置异步通知,首先需要在消息服务控制台创建事件通知规则,然后再到邮件推送控制台新建异步通知,所以需要开通消息服务。消息服务可能会产生费用。
设置异步通知时使用阿里云主账号,消息服务目前不支持子账号。
创建事件通知规则
建议在创建事件通知规则之前,先创建消息接收队列作为事件通知接收终端。
创建消息接收的队列
进入消息服务控制台。
单击左侧导航栏中队列,进入队列页面。
单击页面创建队列按钮,将会弹出新建队列对话框。
输入队列名称,其他按默认值即可,然后单击确认。
创建事件通知规则
1、在消息服务控制台,单击左侧导航栏中事件通知。
2、单击页面创建规则按钮,将弹出规则创建对话框。
3、检查地区,产品名称,输入规则名称,选择事件类型,添加接收终端,然后单击确定。接收终端目前支持 HTTP、队列两种。您可以选择创建的队列为接收终端。
注意:新规则创建完成后,需要约 10 分钟的时间才能生效。
“[事件类型]”说明见下文。
新建异步通知
异步通知分为账户级异步通知和发信地址级异步通知。如果您希望对所有发信地址实现投递结果的异步通知,仅设置账户级异步通知即可。如果您希望仅对某些发信地址实现投递结果的异步通知,仅设置该发信地址的发信地址异步通知即可。您也可以既设置账户级又设置发信地址级异步通知。因发信地址级异步通知优先级高于账户级异步通知,即发信地址优先获取对应发信地址级异步通知设置,账户级异步通知设置对该发信地址以外的其他发信地址生效。
创建账户级异步通知
1、登录 邮件推送管理控制台。
2、单击左侧导航栏中异步通知进入异步通知页面。
3、单击页面新建账号级异步通知按钮,将会弹出创建对话框。
4、选择与之前选择一致的区域,然后单击确定。
创建发信地址级异步通知
1、登录邮件推送管理控制台。
2、单击左侧导航栏中异步通知进入异步通知页面。
3、单击发信地址级异步通知。
4、然后单击页面新建发信地址级异步通知按钮。
5、在弹出对话框中选择发信地址和地域,然后单击确定。
消息服务控制台接收队列消息,验证链路已通
通过邮件推送服务器发送邮件请求后,
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校验失败。请解析正确的SPF,并且测试下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 | SP校验失败。请解析正确的SPF |
SmtpMfLimit | 发信人全天发送邮件的数量超过收信域限制。请第二天重试 |
SmtpDmaFail | SPF或者DKIM校验失败。请解析正确的SPF,并且测试下DKIM是否正确 |
SmtpProtErr | 对端协议交互错误 |
SysOutRecipientReportedSpam | 收信人举报了您的发信地址或者域名 |
SysOutHoneypot | 收信人是蜜罐地址。请停止给此地址发信,否则会受到反垃圾组织的惩罚 |
SysOutRecipientUnsubscribed | 收信人退订了您的发信地址或者域名 |
打开邮件事件的消息结构
样例
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 |
其他相关文档
- 本页导读 (0)