
SendGridで送ったメールの配信状況をActivity Feedで確認してみた
こんにちは、昴です。
今回は、SendGridで送信したメールの状況を追跡・確認できる「Activity Feed」機能についてご紹介します。
はじめに
APIなどでプログラム側からメール送信処理が成功したとしても、「本当に相手に届いているのか?」「迷惑メールに入っていないか?」「そもそも開かれているのか?」といった疑問は必ず生じます。
SendGridには、送信したメール一通一通のステータスをリアルタイムで追跡できる Activity Feed という強力な機能があります。
今回は、意図的にいくつかのパターンのメールを送信し、Activity Feedでどのように表示されるのかを確認してみました。
前提・検証環境
本記事の手順を進めるにあたり、以下の環境が必要です。
- SendGridアカウントが開設済みであること
- APIキーが発行済みであること
- ※事前に Settings > Tracking から Open Tracking(開封確認)をONにしています。

実践
Activity Feedで様々なログを確認するため、API(curlコマンド)を使って以下の3パターンのメールを送信してみます。
- 届いて、ユーザーが開封したメール
- 届いたけど、ユーザーが未開封のメール
- 宛先が存在せず、エラーになったメール
メールの送信には以下のコマンドを使用しました。用途に合わせて宛先や件名を変更し、計3通送ります。
※ YOUR_API_KEY、TO_EMAIL(宛先)、SENDER_EMAIL(送信元)の部分はご自身の環境に合わせて置き換えてください。
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"personalizations":[{"to":[{"email":"TO_EMAIL"}]}],"from":{"email":"SENDER_EMAIL"},"subject":"Activity Feedのテストメール","content":[{"type":"text/plain","value":"テストメールです。"}]}'
1つ目と2つ目は自分の確認用アドレス宛に送信し、1つ目のメールだけを実際にメールソフトで開きました。
3つ目は、絶対に存在しないダミーアドレス(例:error-test-99999@example.com など)宛てに送信しています。
これらがSendGrid側でどのように記録されているかを見ていきます。
確認
SendGridコンソールにログインし、左側のメニューから Activity をクリックします。
すると、直近で送信されたメールの一覧と、それぞれの Status(状態) が表示されます。

各ステータスの意味は以下の通りです。
- Delivered(緑色): 受信側のサーバーに正常に引き渡され、届きました。このステータスかつ、右側の OPENS の数字が「1」以上になっていれば、相手がメールを開封したことを示します。
- Processing(灰色): 送信処理中の状態です。送信直後や、受け取り側の判断を待っている間はこの表示になります。
- Not Delivered(赤色): 宛先不明や拒否などでメールが届かなかった状態です。存在しないドメイン宛てに送った際などに表示されます。
このように、色付きのバッジで現在の状態が一目でわかります。
ログの詳細を確認する
エラーになってしまった場合など、より詳細な原因を知りたい場合は、一覧の中の該当のログ(行)をクリックします。
すると、画面右側に詳細情報がスライドして表示されます。

例えば、存在しないドメイン(non-existent-domain-12345.com)宛てに送信したログの詳細を見ると、Event History で以下のような流れを確認できます。
- Received by SendGrid: SendGridがリクエストを受理。
- Processed: 送信処理を開始。
- Deferred: 相手先サーバーが見つからず、再試行を繰り返す。
- Blocked(赤色): 最終的に配信不能としてブロック。
さらに詳細画面のレスポンス(Full response)を確認すると、unable to get mx info: failed to get IPs from PTR record と表示されています。これにより、「宛先ドメインのMXレコード(メールサーバーの情報)が見つからなかった」という具体的なエラー原因まで特定することが可能です。
検索して絞り込む
大量にメールを送っている場合、画面上部の検索バーを使うことで特定のログを絞り込むことができます。
検索バーをクリックし、宛先のメールアドレスなどを入力してEnterキーを押すと、そのアドレスに関連するログだけが抽出されます。

カスタマーサポート等で「メールが届かない」とお問い合わせがあった際にも、この検索機能を使えばすぐに対象のログを見つけて原因を調査できるため非常に便利です。
まとめ
今回はSendGridのActivity Feedを使って、送信したメールの追跡を行ってみました。
メール配信において、「送って終わり」ではなく「送った後の状況が見える」ことは非常に重要です。開発中のデバッグや、運用時のエラー調査にぜひActivity Feedを活用してみてください。
本ブログが少しでも参考になれば幸いです。
告知
Twilio/SendGridセミナーを毎月開催しています
クラスメソッドでは毎月Twilio/SendGridのセミナーを実施しています。
クラスメソッドではTwilio/SendGridのセミナーを毎月開催しております。いずれもTwilio及びSendGridを良く知らない方向けに基本的な部分から解説する内容となっておりますので、今後Twilio/SendGridの導入を検討している方や、既に導入済で改めて基本的な部分を勉強したいと考える方は、是非お気軽にご参加いただければと思います。







