通过创建事件通知规则,轻量消息队列(原 MNS)可以将邮件推送产生的事件以消息的方式推送到指定的接收端。本文介绍邮件推送事件通知的背景信息、适用场景、事件类型以及消息格式。
背景信息
如下图所示,如果您在邮件推送服务控制台打开异步通知功能,轻量消息队列(原 MNS)支持将邮件推送的结果以消息的方式进行异步通知。您可以创建事件通知规则来指定在邮件推送过程中触发不同的事件时,将邮件推送的结果消息推送到对应的接收端中。
适用场景
异步获取邮件推送结果消息,再根据业务需求进行处理,例如重新发送。
批量发送邮件,根据邮件推送结果消息异步统计邮件发送结果。
监控邮件推送结果,例如大量邮件推送失败时,系统会及时向用户发送通知。
邮件推送结果消息通过多种方式推送到不同的接收端,以进行不同处理,例如多个业务部门都关心这些数据。
如果用户A将邮件推送的权限授予用户B,用户A可以通过邮件推送通知了解用户B邮件推送的情况。
事件类型
邮件推送支持以下事件类型。
事件类型 | 描述 |
Deliver:Click | 单击邮件中的链接。 |
Deliver:Open | 打开邮件。 |
Deliver:SendSuccessfully | 邮件推送成功。 |
Deliver:SendFailed | 邮件推送失败。 |
消息格式
消息格式如下所示:
发送成功示例
env_id=457323378&msg_id=77041400535408&account=test@example.com&from=test@example.com&rcpt=abc@example.net&recv_time=2017-04-14 11:44:47&end_time=2017-04-14 11:44:48&status=0&event=deliver®ion=cn-hangzhou&err_code=250&err_msg=250 Send Mail OK
发送失败示例
env_id=457323379&msg_id=77041400535409&account=test@example.com&from=test@example.com&rcpt=abc@example.net&recv_time=2017-04-14 11:44:48&end_time=2017-04-14 11:44:49&status=2&event=deliver®ion=cn-hangzhou&err_code=550&err_msg=550 No Such User
说明错误信息,请参见邮件推送常见退信代码及处理方法。
邮件推送时调用API错误,请参见SingleSendMail和BatchSendMail。
消息格式字段解释如下表所示。
字段 | 描述 |
env_id | 系统内ID。用于反馈查询问题。 |
msg_id | 邮件原文中的Message-ID字段。 |
account | 发件人账户。 |
from | 发件人地址。 |
rcpt | 收件人地址。 |
recv_time | 邮件接收入队时间。 |
end_time | 邮件投递完成时间。 |
status | 投递完成结果状态。 取值说明如下:
|
event | 触发的事件。 |
region | 事件规则所在地域。 |
err_code | 投递完成时接收端的返回码。 |
err_msg | 投递完成时接收端的返回信息。 |
注意事项
事件通知规则创建完成后,约10分钟生效。
系统会自动为新建的规则创建主题,主题可能产生费用,详情请参见计费说明。
事件通知规则支持创建和删除,暂时不支持修改。
步骤一:创建队列
在左侧导航栏,单击队列列表。
在顶部菜单栏,选择地域。
在队列列表页面,单击创建队列。
在创建队列面板配置以下参数,然后单击确定。
名称:队列名称。
消息最大长度:发送到队列的消息体的最大长度。
长轮询时间:当队列中没有消息时,该队列的ReceiveMessage请求的最大等待时长。
消息可见性超时时间:消息从队列中取出后从Active状态变成Inactive状态后的持续时间。
消息保存时长:消息在队列中的最长存活时间。从发送到队列开始经过此参数指定的时间后,不论消息是否被取出都将被删除。
消息定时时间:发送到队列的所有消息将延后此参数指定的时间后被消费。
启用日志功能:是否开启日志管理功能。
队列列表页面目标队列已创建。
步骤二:创建规则
在左侧导航栏,单击事件通知。
在顶部菜单栏,选择地域。
在事件通知页面,单击邮件推送DM页签, 然后单击创建规则。
在创建规则-邮件推送DM面板,进行以下配置,然后单击确定。
名称:输入规则名称。
事件类型:选择事件类型。
接收终端:选择队列,输入队列名称。
步骤三:接收消息
在左侧导航栏,单击队列列表。
在顶部菜单栏,选择地域。
- 在队列列表页面,找到目标队列,在其右侧操作列选择 。
- 在队列收发消息快速体验页面的接收消息区域,单击接收消息。接收消息区域显示队列的消息列表。
在消息列表中,找到目标消息,在其右侧操作列单击详情,在消息详情对话框中查看消息内容。
相关文档
事件通知基于轻量消息队列(原 MNS)主题功能。更多推送类型,请参见推送类型。
接收消息的HTTP服务搭建,请参见主题使用手册和HttpEndpoint。
从接收端队列获取通知消息,请参见队列使用手册。
从接收端队列中接收异步回调结果消息的示例代码请参见以下文档:
Java SDK:队列使用手册
Python SDK:队列使用手册
PHP SDK:队列使用手册
C# SDK:队列使用手册
RESTful API:ReceiveMessage