送信リクエストの内容とイベントを紐付ける方法を教えてください

<SendGridが生成する識別情報を利用する方法>

Web API v3またはSMTPをご利用の場合で、独自の識別情報を付与する必要がなければ、自動で生成される「X-Message-ID」および「SendGrid Message ID」をご利用ください。

SendGridは送信リクエストを受け付けると、リクエストごとにX-Message-IDを生成します。この情報は、送信リクエストのレスポンスとして返却されます。その後メール送信処理が始まると、メールごとにSendGrid Message IDが付与されます。SendGrid Message IDは発生したイベントの各データに含まれます。

SendGrid Message IDは、X-Message-IDの後ろに各メールの識別用の文字列を付加した形になっています。そのため、X-Message-IDとSendGrid Message IDを送信側で保持しておけば、送信リクエストと発生した各イベントデータを紐付けることができます。

 

MessageID.png

 

X-Message-IDは送信リクエストの受付時に以下のように確認することができます。

  • Web API v3の場合 ・・・ 送信リクエスト時のレスポンスに含まれるx-message-idヘッダ
  • SMTPの場合 ・・・ 送信リクエストを受け付けたタイミングで返される「250 Ok: queued as xxxxx」の「xxxxx」の部分(telnetコマンドの例はこちら)  

SendGrid Message IDの確認方法は以下の通りです。

  • Event Webhookで確認する場合 ・・・ イベントデータ内の`sg_message_id`パラメータ
  • Activityの画面で確認する場合 ・・・ 各イベントの「i」マークにマウスオンすると表示される「MSGID」

<送信側でメールの識別情報を付与する方法>

送信側でメールの識別情報を付与したい場合は、以下の方法をご利用ください。

Event WebhookでPOSTされるデータには、送信リクエストで指定したユニーク引数やカスタム引数が含まれるため、送信側で識別情報を保持しておけば、これらを利用してメールを紐付けることができます。