メールはなぜ届かなかったのか?Email Logsで原因を特定する方法

メールはなぜ届かなかったのか?Email Logsで原因を特定する方法

SendGridサポート&マーケティング担当の関口です。
Twilio SendGridで送信したメールが届かなかったとき、「Email Logs」でその詳細を確認できるのをご存知ですか?これは、メールの不達理由を把握して解決するための、大きな手がかりとなります。

この記事では、メールが届かなかった理由の確認方法と、イベント別のよくあるケースを解説していきます。

不達の理由を確認する方法

まずは確認方法です。
Activity > Email Logsにアクセスすると、直近30日間に送信したメールの一覧を確認することができます。

直近30日間に送信したメールの一覧

メールが多い場合、「Status」フィルタを使い、不達に相当するイベント(ProcessedとDelivered以外)を選択します。

イベントを選択してフィルタ

すると、宛先に届いていないメールだけに絞り込むことができます。

該当のみ表示

一番右の列に、「Response」という項目があります。ここに記載されている内容を見ることで、不達の原因を探ることができます。

Responseの表示内容が見切れている場合は、当該イベントのMessage IDのリンクをクリック > Event HistoryにあるView Detailsをクリックすることで同じ内容を確認できます(画像のJSON内の赤枠)。

View Details

Email Logsについて、詳細はこちらの記事をご覧ください。

不達のよくある理由

Email Logsに記録される不達の理由には、大きく分けて以下の2種類があります。

  • 宛先への送信を試みたメールの場合
    宛先メールサーバからの応答メッセージがそのまま記載されます。
  • 宛先への送信を行うことなく、SendGrid側で破棄したメールの場合
    SendGridが生成したメッセージが記載されます。

以下、イベントの種類ごとに詳しく見ていきます。

Bounce(バウンス)

Bounceは、宛先メールサーバから「恒久的なエラー」を示す応答コードが返された時に発生するイベントです。

Bounce

このとき、Responseには宛先メールサーバから返された応答内容がそのまま記載されます。

多くの場合、Bounceの原因は「宛先メールアドレスが存在しない」であり、以下はメッセージの例です。
・550 User unknown
・550 The email account that you tried to reach does not exist
・554 This account has been disabled or discontinued
・550 Recipient address rejected: User unknown

なお、記載内容は宛先メールサーバが返したもののため、不明点がある場合は宛先メールサーバの管理者に確認する必要があります。

Deferred(遅延)

Deferredは、宛先メールサーバから「一時的なエラー」を示す応答コードが返された時に発生するイベントです。

Deferred(遅延)

このときもBounceと同様、宛先メールサーバから返された内容がそのまま記載されます。

Deferredの原因としては、「メールボックスが一杯になっている」「一時的なネットワーク障害が発生している」「メールの送信量が多すぎる」などが挙げられます。これらはしばらく待つことで解消することが多いため、SendGridでは自動的に再送を繰り返します(最長72時間)。

<イベント発生の流れ>
Processed → Deferred → Deferred → … → Delivered(もしくはBlock)

基本的には間隔を徐々に広げながら再送をくり返しますが、宛先メールサーバからの応答内容によっては、通常よりも大きく間隔をとったり、72時間を待たずに再送を中断したりすることもあります。なお、再送処理はSendGridによって自動的に行われ、再送間隔の制御やキャンセルはできません

IPウォームアップの必要性

送信実績のない状態で大量のメールを送信した際に、
・error dialing remote address: dial tcp xxx.xxx.xxx.xxx: i/o timeout
のようなタイムアウト系のDeferredが見られる場合は、宛先サーバ側にスロットリング(流量制限)されている可能性があります(宛先メールサーバによってメッセージの内容は異なります)。

スロットリングが疑われる場合は新たな送信を控え、Deferredが落ち着くまで様子を見てください。その後、IPウォームアップを実施してください。

Block(ブロック)

Blockは、以下のような時に発生するイベントです。
・Deferredが解消されず、SendGridが再送を諦めた
ブラックリスト(ブロックリスト)に掲載されている(この場合、Deferredすることなく即時Blockイベントが発生します)

Responseには、宛先メールサーバからの応答内容がそのまま記載されます。

Drop(破棄)

送信すべきではない宛先へメール送信を試み、SendGridが自動的に破棄したときに発生するイベントです。

Drop(破棄)

このときResponseにはSendGridが生成した以下のようなメッセージが格納されます。
・Bounced Address
・Unsubscribed Address
・Invalid

例えば「Bounced Address」であれば、バウンスリストにそのメールアドレスが掲載されているために自動的に破棄したということを示しています。

詳しくは、「メールがドロップしてしまったのですが、なぜでしょうか?どう対処すればいいですか?」を確認してください。

Delivered(正常受付)

ここまでは不達のイベントをご紹介しましたが、宛先メールサーバが正常にメールを受け付けた時には「Delivered」というイベントが発生します。

Deliveredが発生しているにも関わらず、宛先の受信トレイに届いていない場合は、
・宛先メールサーバ側の判断により破棄された
・迷惑メールフォルダに振り分けられている
といった原因が考えられます。宛先メールサーバの管理者に状況を確認してください。

さいごに

Email Logsで確認できる詳細情報は、不達の原因がどこにあるかを切り分ける上で非常に大きな手掛かりとなります。
イベントの種類だけを見て終わりにせず、詳細を確認して個別に対処しましょう。

アーカイブ

  • クレジットカード
    登録不要

  • インストールは
    一切不要

  • 独自ドメイン
    利用OK

SendGridの充実した機能をまずは
試してみませんか?

無料トライアル