mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 03:41:05 -05:00
SendGrid: change message_id from Message-ID/smtp-id to UUID anymail_id
SendGrid does not always correctly provide the sent Message-ID header value to a tracking webhook's smtp-id field, making it unreliable to use for Anymail's `message_id`. Instead, generate a UUID `message_id` for Anymail tracking, and pass it from send to webhooks in SendGrid custom args as anymail_id. Webhooks will fall back to smtp-id for compatibility with previously-sent messages that didn't have an anymail_id custom arg. Fixes #108
This commit is contained in:
committed by
Mike Edmunds
parent
51d2a404c0
commit
d8d1407c61
@@ -72,7 +72,7 @@ class SendGridTrackingWebhookView(AnymailBaseWebhookView):
|
||||
return AnymailTrackingEvent(
|
||||
event_type=event_type,
|
||||
timestamp=timestamp,
|
||||
message_id=esp_event.get('smtp-id', None),
|
||||
message_id=esp_event.get('anymail_id', esp_event.get('smtp-id')), # backwards compatibility
|
||||
event_id=esp_event.get('sg_event_id', None),
|
||||
recipient=esp_event.get('email', None),
|
||||
reject_reason=reject_reason,
|
||||
@@ -86,6 +86,7 @@ class SendGridTrackingWebhookView(AnymailBaseWebhookView):
|
||||
|
||||
# Known keys in SendGrid events (used to recover metadata above)
|
||||
sendgrid_event_keys = {
|
||||
'anymail_id',
|
||||
'asm_group_id',
|
||||
'attempt', # MTA deferred count
|
||||
'category',
|
||||
|
||||
Reference in New Issue
Block a user