web-dev-qa-db-ja.com

sendgrid webhook sg_message_idを送信済みメールに関連付ける方法は?

Sendgridwebhookにはsg_message_idしかし、メール送信時のWeb APIv2の応答にはsg_message_id。実際、successまたは失敗のみを示すメッセージのみがあります。

では、送信されたメールとWebhookコールバックをどのように関連付けるのですか?

SOで過去の質問を確認しましたが、これに対する解決策は提供されていません。

ありがとうございました。

19
chaintng

一意の引数を使用できます。一意のID(主キーなど)を取得して、メールの送信中にsendgridAPIに渡します。イベントwebhookでそれを取り戻します。

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

21

[〜#〜] edit [〜#〜]:ベストプラクティスは カスタム引数 を使用しているようです(-を参照) ドキュメント )。これはドキュメントからは明らかではありません(今日の時点で)。


Web API v3では、応答に特別なヘッダー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ヘッダーは実際にはsg_message_idと等しくありませんが、sg_message_idのプレフィックスです。

例えば:

  • X-Message-Id = "MUvGg3V1ThOu3oe8eRqFrA"
  • sg_message_id = "MUvGg3V1ThOu3oe8eRqFrA.filter0001p2iad2-21183-5AF0BD9B-E.0"
13
Marek Lisý

電子メールを送信するWebAPIv2呼び出しは、実際には{message: "success"}応答でのみ応答しますが、その時点ではsg_message_idは生成されません。 API呼び出しの回答は、メールが処理のためにSendGridに送信されたことを確認するだけです。

メールはSendGridに送信され、そこでイベントWebhookの投稿を通じて提供されるsg_message_id値を受け取ります。

1
VictorA