我正在使用此文档尝试从 SendGrid 电子邮件活动 API 接收退回信息:
但它没有返回任何结果,尽管我们的仪表板上显示了大约 50 次退回(可从 SendGrid 网络界面的“活动”部分查看)。
请求:
curl --request GET \
--url 'https://api.sendgrid.com/v3/messages?limit=100&query=status%3D%22bounced%22' \
--header 'authorization: Bearer <<TOKEN_REMOVED>>'
回复:
{"messages":[]}
显然 <
注意 - 当我使用 v3/suppression/bounces
端点返回一切时它工作正常(以巨大的 JSON 响应),但是我想要能够使用更灵活的 messages
端点来查询特定的电子邮件等。
curl --request GET \
--url https://api.sendgrid.com/v3/suppression/bounces \
--header 'accept: application/json' \
--header 'authorization: Bearer <<TOKEN_REMOVED>>' \
--header 'content-type: application/json' \
--data '{}' \
答案 0 :(得分:1)
有两个地方记录了消息 API 的用法:
然而,关于 status
查询参数,“入门”指南有过时的示例,其中错误地包含了 &query=status%3D%22bounced%22'
。
在 query reference 中明确提到 status
只能是以下之一:
有效值包括“delivered”、“not_delivered”和“processing”
但是,由于 sendgrid 还依赖其自己的 /messages
API 来检索 GUI 中的值,因此检查流量后发现它使用 type
查询参数来识别反弹(见下图)。>
免责声明:此 type
参数似乎未记录在案,因此使用时风险自负。
进一步阅读:如果您想在不定期轮询 /messages
端点的情况下以反应方式获知失败的电子邮件事件,您应该查看 sendgrid 的 webhooks mechanism,它将调用您选择的端点,以便向您提供有关电子邮件状态的信息,包括它是否被退回。