获取退回邮件列表,Mandrill

Get list of bounced emails, Mandrill

我正在尝试制作一个快速程序,向用户显示通过 Mandrill 发送但被退回的电子邮件列表。

此程序不会发送邮件,因此我需要提取列表而不是在邮件发送后收到通知。

目前我正在使用导出 API https://mandrillapp.com/api/1.0/exports/activity.json 来获取所有退回邮件的列表。唯一的问题是仅过去 14 天的导出就可能需要 2 个多小时,并且仅过滤退回的电子邮件。这是最终用户无法接受的。稍等几分钟就可以了。

那么,有没有其他方法可以获取退回电子邮件的列表?或者有什么方法可以确保导出能够及时完成?

如果可能,我会配置一个订阅 "Message is bounced" 事件的 Webhook https://mandrillapp.com/settings/webhooks

当邮件退回时,Mandrill 将 post 到您定义的 URL 以及您需要解析和记录的一些 JSON。

JSON 数据的格式如下:https://mandrill.zendesk.com/hc/en-us/articles/205583307-Message-Event-Webhook-format

这将为您提供近乎实时的退回跟踪。

https://mandrillapp.com/api/1.0/messages/search.json

{
"key":"htha8888888",  
"query": "state:bounced",  
 "limit": 1000
}

此查询的问题是最多可以返回 1000 条消息,因此您必须在搜索查询中相应地调整时间 window 来根据时间进行一些分页"query": "state:bounced AND ts:[START_TIME TO STOP_TIME]"(注意开始和停止时间是以秒为单位的纪元时间)

搜索查询也有滞后,时间上没有SLA。根据我的经验,我得到的结果不迟于 3 hours.If 你需要立即通知,我会推荐 webhooks,如果可行打开你的防火墙,让 mandrill 发送更新到你的 webhook。