概述
为了方便记录每封邮件投递过程中,发生的各种事件,邮件推送 SES 的回调能力默认使用长连接。所谓回调,即邮件推送 SES 后台会在邮件投递过程中,发生的相关事件,向客户后台服务器发送请求,客户后台服务器可以据此进行必要的记录以及逻辑处理。回调基于 HTTP/HTTPS 协议,通过 POST 请求的方式发送给客户后台服务器,客户后台服务器需要立即处理并尽快进行应答,例如:
回调配置
设置回调地址后,腾讯云将在产生“递送成功、腾讯云拒信、ESP 退信、用户打开邮件、点击链接、退订”等事件后通知到回调地址。通过邮件推送控制台,您可以配置回调地址的操作,请参见 回调地址。同一封邮件,部分事件可能有多次回调,如果收件人多次打开邮件,便会产生多次打开事件的回调。
请求示例
{"event":"bounce","email":"example@example.com","bulkId":"qcloudses-30-251200670-date-20220601142439-8jolHvR2XcXC1","timestamp":1654064683,"reason":"551 5.1.1 recipient is not exist","bounceType":"hard_bounce","username":"251200670","from":"test@fromexample.com","fromDomain":"fromexample.com","templateId":123456,"subject":"这是一个例子程序","messageId":"ea2783c1-7704-48a8-af36-2b9e83e767ec@fromexample.com"}
字段 | 类型 | 描述 |
event | String | |
email | String | 收件人地址 |
link | String | 用户点击的邮件中的链接 URL,仅在 event="click" 时生效 |
bulkId | String | SendEmail 接口返回的 MessageId |
timestamp | Int | 事件产生的时间戳 |
reason | String | 邮件递送失败的原因 |
bounceType | String | 如果收件人邮件服务商拒信,拒信类型,取值:soft_bounce | hard_bounce,仅在 event="bounce" 的时候生效 |
username | String | 腾讯云账号对应的 AppID |
from | String | 发信地址(不带发件人别名) |
fromDomain | String | 发信域名 |
templateId | Int | 模板 ID |
useragent | String | 用户代理提供有关用于访问邮件的设备、操作系统和浏览器的信息,仅对 Open 和 Click 事件生效 |
subject | String | 邮件主题 |
messageId | String | smtp 协议头中的 Message-ID,用户在使用 smtp 或 API 发送时可以传自已定义的邮件唯一标识符,注意这个一定要能够唯一标识一封邮件且符合 RFC5322标准 |
eventid | Int | 1:delivered 2:dropped 3:bounce 4:open 5:click 6:spamreport 7:unsubscribe 8:deferred |
事件类型
Value | Description |
deferred | 邮件被收件人邮件服务商延迟传递,正在重试中 |
delivered | 递送成功,收件人邮件服务商已接收此邮件 |
dropped | 因为某种原因,这封邮件不能送达,被丢弃 |
open | 收件人打开了此邮件 |
click | 收件人点击了此邮件中的链接 |
bounce | 收件人邮件服务商拒收此邮件(一般是因为邮箱地址错误) |
spamreport | 收件人举报了此邮件 |
unsubscribe | 收件人点击了业务方的“退订”按钮,需要业务方在退订链接中包含"unsubscribe"关键词 |