设置异步通知
本文介绍如何设置异步通知功能。
通过邮件推送服务器发送邮件请求后, 投递结果将按照您在消息服务中设置的事件通知规则发送至消息服务的接收终端(HTTP、消息队列、主题)中,您可以使用消息服务的接收终端异步获取投递结果。
设置异步通知时使用阿里云主账号,消息服务目前不支持子账号
创建事件通知规则
建议在创建事件通知规则之前,先创建消息接收队列作为事件通知接收终端。
创建消息接收的队列
进入 消息服务控制台。
单击左侧导航栏中 队列,进入队列页面。
单击页面右上角 创建队列,将会弹出新建队列对话框。
输入队列名称,其他按默认值即可,然后单击 确认。

创建事件通知规则
在消息服务控制台,单击左侧导航栏中 事件通知。
单击页面右上角 创建规则,将弹出规则创建对话框。
检查地区,产品名称,输入规则名称,选择事件类型,添加接收终端,然后单击确定。接收终端目前支持 HTTP、队列两种。您可以选择创建的队列为接收终端。

注意:新规则创建完成后,需要约 10 分钟的时间才能生效。
“[事件类型]”说明见下文。
新建异步通知
异步通知分为账户级异步通知和发信地址级异步通知。如果您希望对所有发信地址实现投递结果的异步通知,仅设置账户级异步通知即可。如果您希望仅对某些发信地址实现投递结果的异步通知,仅设置该发信地址的发信地址异步通知即可。您也可以既设置账户级又设置发信地址级异步通知。因发信地址级异步通知优先级高于账户级异步通知,即发信地址优先获取对应发信地址级异步通知设置,账户级异步通知设置对该发信地址以外的其他发信地址生效。
创建账户级异步通知
登录 邮件推送管理控制台。
单击左侧导航栏中 异步通知进入异步通知页面。
单击页面右上角 新建账号级异步通知,将会弹出创建对话框。
选择与之前选择一致的区域,然后单击 确定。

创建发信地址级异步通知
登录 邮件推送管理控制台。
单击左侧导航栏中 异步通知进入异步通知页面。
单击 发信地址级异步通知。
然后单击页面右上角 新建发信地址级异步通知。
在弹出对话框中选择发信地址和地域,然后单击 确定。

消息服务控制台接收队列消息,验证链路已通
通过邮件推送服务器发送邮件请求后,
进入 消息服务控制台。
单击左侧导航栏中 队列列表。
选择相应区域,查看之前创建的队列中的活跃消息数。
单击该队列对应的 收发消息 按钮,查看具体消息。


程序如何获取接收消息?
事件类型和启用方式
事件类型目前支持如下几类:
投递成功:Deliver:SendSuccessfully
投递失败:Deliver:SendFailed
打开邮件:Deliver:Open
点击邮件中的链接:Deliver:Click
发送邮件时如何开启投递成功或者失败事件的统计?
不需要额外关心,默认会搜集投递信息。
发送邮件时如何开启打开或者点击事件的统计?
投递成功和投递失败的消息结构
投递成功样例
env_id=12769055421&msg_id=37483d95-7a08-41fb-9738-3d3ffa24d415@example.com&account=example@example.com&from=example@example.com&rcpt=example1@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
投递失败样例
env_id=12625010655&msg_id=ac349efc-0d79-489b-affa-f178dce3e49e@example.com&account=example@example.com&from=example@example.com&rcpt=example1@example.com&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 时,表示投递成功事件消息。
参数列表
名称 | 描述 |
---|---|
event | 事件消息的类型。deliver对应着投递事件 |
region | 事件发生的区域 |
env_id | 系统内ID,发信时会返回 |
msg_id | 邮件原文 Message-ID 字段 |
account | 发件人地址 |
from | 发件人地址 |
rcpt | 收件人地址 |
recv_time | 邮件接收入队时间 |
end_time | 邮件投递完成时间 |
status | 投递完成结果状态(0-成功,2-无效地址,3-接收方认为垃圾邮件,4-失败) |
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 | 对端协议交互错误 |
打开邮件事件的消息结构
样例
bid=1&env=175351599260&mac=108503&mf=example@example.com&msgid=834133664.11629898518446.JavaMail.javamailuser@example.com&sac=0&tag=testTrace&tid=&to=example1@example.com&tpl=&ts=1629898524&type=1&url=&v=1.0&sign=1c1af56a87ba2924002aca6652271e66
参数列表
名称 | 描述 |
---|---|
bid | 批量id |
env | 系统内ID,发信时会返回 |
mac | 主账号 |
mf | 发件人地址 |
msgid | 邮件原文 Message-ID 字段 |
sac | 子账号 |
tag | 邮件标签 |
to | 收件人地址 |
tpl | 模版id |
type | 跟踪类型 |
url | 点击的URL |
sign | 签名 |
点击邮件事件的消息结构
样例
bid=1&env=175351599260&mac=108503&mf=example@example.com&msgid=834133664.11629898518446.JavaMail.javamailuser@example.com&sac=0&tag=testTrace&tid=&to=example1@example.com&tpl=&ts=1629898524&type=0&url=httpxxx&v=1.0&sign=f4f601cd83d65ad1e48a256e1502d7ad
参数列表
名称 | 描述 |
---|---|
bid | 批量id |
env | 系统内ID,发信时会返回 |
mac | 主账号 |
mf | 发件人地址 |
msgid | 邮件原文 Message-ID 字段 |
sac | 子账号 |
tag | 邮件标签 |
to | 收件人地址 |
tpl | 模版id |
type | 跟踪类型 |
url | 点击的URL |
sign | 签名 |