如何将 sendgrid webhook sg_message_id 关联到已发送的邮件?
How to associate sendgrid webhook sg_message_id to sent mail?
Sendgrid 网络钩子有 sg_message_id
但是Web API v2 发送邮件时的响应没有sg_message_id
。
事实上,只有消息显示 success
或失败。
那么,如何关联已发送邮件和 webhook 回调?
我已经检查了 SO 中过去的问题,但它没有提供解决方案。
谢谢。
发送电子邮件的 Web APIv2 调用仅响应 {message :"success"} 的确如此,但是 sg_message_id 不会在此时生成。 API 呼叫应答只是确认电子邮件已发送到 SendGrid 进行处理。
电子邮件被发送到 SendGrid,并在那里接收通过事件 Webhook 帖子提供的 sg_message_id 值。
您可以使用独特的参数。获取您的唯一 ID(如主键)并在发送电子邮件时将其提供给 sendgrid API。您将在事件 webhook 中取回它。
https://sendgrid.com/docs/API_Reference/SMTP_API/unique_arguments.html
编辑:最好的做法似乎是使用custom arguments (see documentation)。这在文档中并不明显(截至今天)。
在 Web API v3 中,响应包括一个特殊的 header 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
header其实不等于sg_message_id
,而是sg_message_id
的前缀。
例如:
X-Message-Id = "MUvGg3V1ThOu3oe8eRqFrA"
sg_message_id = "MUvGg3V1ThOu3oe8eRqFrA.filter0001p2iad2-21183-5AF0BD9B-E.0"
Sendgrid 网络钩子有 sg_message_id
但是Web API v2 发送邮件时的响应没有sg_message_id
。
事实上,只有消息显示 success
或失败。
那么,如何关联已发送邮件和 webhook 回调?
我已经检查了 SO 中过去的问题,但它没有提供解决方案。
谢谢。
发送电子邮件的 Web APIv2 调用仅响应 {message :"success"} 的确如此,但是 sg_message_id 不会在此时生成。 API 呼叫应答只是确认电子邮件已发送到 SendGrid 进行处理。
电子邮件被发送到 SendGrid,并在那里接收通过事件 Webhook 帖子提供的 sg_message_id 值。
您可以使用独特的参数。获取您的唯一 ID(如主键)并在发送电子邮件时将其提供给 sendgrid API。您将在事件 webhook 中取回它。
https://sendgrid.com/docs/API_Reference/SMTP_API/unique_arguments.html
编辑:最好的做法似乎是使用custom arguments (see documentation)。这在文档中并不明显(截至今天)。
在 Web API v3 中,响应包括一个特殊的 header 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
header其实不等于sg_message_id
,而是sg_message_id
的前缀。
例如:
X-Message-Id = "MUvGg3V1ThOu3oe8eRqFrA"
sg_message_id = "MUvGg3V1ThOu3oe8eRqFrA.filter0001p2iad2-21183-5AF0BD9B-E.0"