webhooks - sendgrid event status
¿Cómo asociar sendgrid webhook sg_message_id al correo enviado? (3)
Sendgrid webhook tiene sg_message_id
Pero la respuesta de Web API v2 al enviar correo no tiene sg_message_id
. De hecho, solo hay un mensaje que muestra solo el success
o el fracaso.
Entonces, ¿cómo asocio el correo enviado y la devolución de llamada de webhook?
He comprobado las preguntas anteriores en SO, pero no proporciona la solución para esto.
Gracias.
La llamada Web APIv2 que envía el correo electrónico solo responde con una respuesta {message: "success"} , pero el sg_message_id no se genera en ese momento. La respuesta de la llamada a la API simplemente reconoce que el correo electrónico se envió a SendGrid para su procesamiento.
El correo electrónico se envía a SendGrid y allí recibe el valor sg_message_id que se proporciona a través de las publicaciones de Event Webhook.
Puedes usar argumentos únicos. Tome su ID única (como clave principal) y entréguela a la API sendgrid durante el envío de correo electrónico. Lo recuperarás en el webhook del evento.
https://sendgrid.com/docs/API_Reference/SMTP_API/unique_arguments.html
EDITAR : la mejor práctica parece ser el uso de argumentos personalizados (consulte la documentation ). Lo que no se desprende de la documentación (a partir de hoy).
En Web API v3, la respuesta incluye un encabezado especial X-Message-Id
(consulte https://sendgrid.com/docs/Glossary/x_message_id.html ).
Esto se puede hacer coincidir posteriormente con sg_message_id
en webhook: https://sendgrid.com/docs/Glossary/message_id.html
La documentación no lo aclara, pero el encabezado X-Message-Id
realidad no es igual a sg_message_id
, pero es un prefijo de sg_message_id
.
Por ejemplo:
-
X-Message-Id = "MUvGg3V1ThOu3oe8eRqFrA"
-
sg_message_id = "MUvGg3V1ThOu3oe8eRqFrA.filter0001p2iad2-21183-5AF0BD9B-E.0"