SendGridを導入した際のメールアドレス管理、不正メール対応について少し調べたので書き溜めておく。
ユーザ(開発者)側がやるべきことと、SendGridがやってくれることを整理した。
本番サービスで採用する時には、確認しておくべきことが多いはず。
概要
ユーザーがやるべきこと
-
通常ケース
- 送信するべきでない宛先(*1)への送信を避ける
- ダブルオプトインの採用(*2)
- 宛先リスト管理(*3)
-
送信実績のない一斉送信ケース
- 事前クリーニング(SendGridは一通目に対してレピュテーション保護機能が動かないため、送信実績のない一斉送信はレピュテーションを大幅に落とすリスクがある)(*4)
SendGridがやってくれていること
- サプレッションリストの構築(*5)
- サプレッションリストに対する送信保護(*6)
補足
(*1) 送信するべきでない宛先 とは
- 無効なメールアドレス
- 存在しないメールアドレス
- 配信停止希望や、迷惑メール報告をした宛先
- スパムトラップ メールボックスプロバイダが迷惑メール送信者を特定するために仕掛ける罠のアドレス。過去に管理用メールアドレス(abuse@、support@、info@など)として使われていたもの
- 反応のない宛先 一切、開封もクリックもされていない宛先。メールボックスプロバイダが迷惑メールと判断する可能性もある
(*2)ダブルオプトインの採用
ダブルオプトインを採用し正当性を確保する
具体的には、新しいアドレスが登録されたタイミングで、そのアドレスに対して認証用リンクのクリックを促すメールを送信します。
- 期待できる効果
- メールアドレスの存在確認(入力ミスの排除)
- 登録者がメールアドレスのオーナーであることの確認
- メールを受信することを希望していることの確認
(*3)宛先リスト管理
SendGridでは「エンゲージメントベースの宛先リスト管理」を提案している。
エンゲージメントベースの宛先リスト管理(Sunset Policy)
Sunset Policyとは、ユーザのエンゲージメントサイクルの中で「Sunset=ユーザとの別れの時」を定義するポリシーのことです。どのような状態をSunsetとするかはサービスによって異なりますが、例えば、送信したメールに対して反応のない宛先を Sunset状態とみなし宛先リストから削除して、今後送信しないようにするといった運用を行います。このポリシーを作成して運用することで、例えば、古い宛先リストに含まれたスパムトラップを排除することができます。 こうした運用を実現するためには、各宛先のエンゲージメントを把握して、メールを開封していない宛先やエンゲージしていない宛先をリストから削除する必要があります。具体的には、以下のようなポリシーで宛先を削除すると良いようです。
サプレッションリストに対しても下記のように述べているため
定期的なクリーニングは行ったほうがよい。
大量のドロップはSendGridのレピュテーションに悪影響を与える
ドロップされたメールも課金対象となる
宛先リストを作成する際は、サプレッションリストに登録されているアドレスを取り除くことも検討してください。
(*4)事前クリーニング
送信実績のない宛先に一斉送信する前にするべきクリーニング
- SendGridは一通目に対してレピュテーション保護機能が動かないため、送信実績のない一斉送信はレピュテーションを大幅に落とすリスクがある。
- kickboxやBriteVerify等で、存在しないアドレスや無効なアドレスなどを事前に除ける
(*5)サプレッションリスト
SendGridはレピュテーション保護を目的としてサプレッションリストを自動で構築する。
Blocksリストを除きサプレッションリストに入ったアドレスに対しての送信リクエストはSendGrid側で自動でキャンセルされる(Dropされる)
- Blocks
- 宛先メールアドレス以外の問題により、受信側メールサーバに受信を拒否された宛先のリストです。 メッセージ自体や送信元IPアドレスに起因している可能性があります。 Blockはメッセージ固有の問題なので、この宛先へのメールは今度も送信できます(自動的な破棄はされません)。
- Bounces
- 宛先メールアドレスに問題があり、受信側メールサーバに受信を拒否された(もしくはメールがSendGridに送り返された)宛先のリストです。
- Invalid
- 存在しないメールアドレスのリストです。
- Spam Reports
- 迷惑メール報告"した宛先のリストです。
(*6)サプレッションリストに対する送信保護
サプレッションリスト内のアドレスに対して送信リクエストがあった場合、SendGrid側が送信をキャンセルするが下記の点がある
- サプレッションリストには送信されないが、送信数にカウントされる
- Blocksへの送信は行われる
また、この送信保護機能からSendGridは下記のように述べている
SendGridでは、上述のサプレッションリストによりレピュテーションを保護しています。通常の運用では、この仕組みに任せておけば問題ありません。しかし、次のような理由から、時々宛先リストのクリーニングをお勧めします。
参照
この記事は自分用の書き溜めだから他人の責任取るつもりは一切ないので、
ちゃんと公式サイトで確認してね。
- 宛先リストをクリーニングする
- サプレッションの種類
- ソフトバウンスとハードバウンス
- サプレッションと配信停止の違い
- メールがバウンスし続けるとなにか問題はありますか?(SendGrid)
- SendGridAPIv3
SendGridってすごいね。
じゃあね〜〜。