Как связать sendgrid webhook sg_message_id с отправленной почтой?

Sendgrid Webhook имеет sg_message_idНо ответ Web API v2 при отправке почты не имеет sg_message_id, На самом деле, есть только сообщение, показывающее только success или не удалось.

Итак, как мне установить связь между отправленной почтой и обратным вызовом webhook?

Я проверил прошлые вопросы в SO, но это не дает решения для этого.

Спасибо.

3 ответа

Решение

Вы можете использовать уникальные аргументы. Возьмите свой уникальный идентификатор (например, первичный ключ) и передайте его в sendgrid API во время отправки электронной почты. Вы вернете его обратно в событие.

https://sendgrid.com/docs/API_Reference/SMTP_API/unique_arguments.html

РЕДАКТИРОВАТЬ: Лучше всего использовать пользовательские аргументы (см. Документацию). Что не видно из документации (на сегодняшний день).


В Web API v3 ответ содержит специальный заголовок X-Message-Id (см. https://sendgrid.com/docs/Glossary/x_message_id.html).

Это может быть позже сопоставлено с sg_message_id в webhook: 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, и там оно получает значение sg_message_id, которое предоставляется через сообщения Eventhoho.

Другие вопросы по тегам