如何将sendgrid-webhook sg_message_id与已发送邮件相关联



Sendgrid webhook具有sg_message_id但是Web API v2在发送邮件时的响应没有sg_message_id。实际上,只有一条消息显示只有success或失败。

那么,我如何将发送的邮件和webhook回调联系起来呢?

我已经在SO中检查了过去的问题,但它并没有提供解决方案。

谢谢。

您可以使用唯一的参数。在发送电子邮件时,将您的唯一ID(如主键)提供给sendgrid API。您将在活动webhook中取回它。

https://docs.sendgrid.com/for-developers/sending-email/unique-arguments

当你想使用";唯一自变量";通过SMTP,您应该能够使用X-SMTPAPI邮件头执行此操作。

https://docs.sendgrid.com/for-developers/sending-email/building-an-x-smtpapi-header

EDIT:最佳实践似乎是使用自定义参数(请参阅文档)。这一点从文件中(截至今天)并不明显。


在Web API v3中,响应包括一个特殊的头X-Message-Id(请参阅https://sendgrid.com/docs/Glossary/x_message_id.html)。

这可以稍后在webhook中与sg_message_id匹配:https://sendgrid.com/docs/Glossary/message_id.html

文档没有明确说明,但X-Message-Id标头实际上不等于sg_message_id,但它是sg_message_id的前缀。

例如:

  • X-Message-Id = "MUvGg3V1ThOu3oe8eRqFrA"
  • sg_message_id = "MUvGg3V1ThOu3oe8eRqFrA.filter0001p2iad2-21183-5AF0BD9B-E.0"

发送电子邮件的Web APIv2调用确实只响应{message:"success"}答案,但此时不会生成sg_message_id。API呼叫应答只是确认电子邮件已发送到SendGrid进行处理。

电子邮件被发送到SendGrid,并在那里接收通过Event Webhook帖子提供的sg_message_id值。

最新更新