概要
サービスを運営する際に、メールを使った仕組みを実装することがよくあると思います。
弊社ではこれまで自前でメールサーバを運用していましたが、ある日突然、特定のプロバイダからメールを拒否されるという事態が発生し、それを機にメールサーバをSendGridに移行しました。
しかし、SendGridに移行後も同じ事象が発生したため、メールを正しくユーザーに届けるためにどういった配慮が必要なのか、2019/02/13に開催された「SendGridメール送信ハンズオン」に参加し情報収集しましたので、備忘録も兼ねて投稿します。
メールがInboxに届くまで
以下はSendGridのブログから引用した、メールが相手のInbox(受信ボックス)に届くまでのフローです。
- メールをInboxに入れるかの判断はISP側に委ねられている。
- 判断の材料には「認証(Authentication)」と「レピュテーション(Reputation)」が使われる。
ということが読み取れるかと思います。
SendGridは以下のフローにおける「Outbound Mail Server」にあたるサービスですが、「認証(Authentication)」や「レピュテーション(Reputation)」に関わる実装を肩代わりしてくれる部分があります。
認証(Authentication)とは
フロー図にもありますが、SPF、DKIM、DMARC等の、送信ドメイン認証のことを指します。
項目 | 説明 |
---|---|
SPF | IPアドレスを利用して受信したメールの送信元が詐称されていないかどうかを確認するための技術。 |
DKIM | メールに電子署名を付与することで、受信したメールの送信元が詐称されていないかどうかを確認するための技術。 |
DMARC | 詐称されたメールを受信側がどう扱うべきかの方針をドメインの管理者側が宣言するための仕組み。 |
SendGridに手順がありますので、それに従って設定することになります。(ドメインは自分で用意し管理する必要があります。)
レピュテーション(Reputation)とは
メール送信者の信頼度で、高い人ほどたくさんのメールを送信してもInboxに届きやすくなります。
レピュテーションはISPによって判定の基準がそれぞれ異なるため、一概に、こうすれば上がる、ということは言えませんが、一般的には以下のような基準があるとされています。
項目 | 説明 |
---|---|
迷惑メール報告率 | メールを受け取った人が迷惑メールとして報告した割合。 |
不明な宛先の数 | 存在しないメールアドレスに対して送付し、バウンスした数。バウンスは、一般的にメールアドレスに誤りがあったり受信ボックスが一杯になっていたりすることが原因で発生します。 |
スパムトラップ | スパムトラップに引っかかってしまった数。ISPではある特定のアカウントや、古くなったアカウントを再利用し、スパムトラップとして利用します。 |
上記のことから高いレピュテーションを維持するためには、
- バウンス/苦情への対処。
- バウンスが発生した宛先には、再送しない。
- メールの配信停止(オプトアウト)ができるような仕組み。
- 送信先リストのクリーニング。
- 古くなった送信リストは宛先が存在するのか送信前に確認する。
- 未開封が続く宛先には送信しないようにリストから除外する。
- エンゲージメントを高くキープする。
- メールの本文やタイトルを、その人に合わせた内容にする。
といった配慮や、まだメールの送信実績がないIPはレピュテーションがない状態なので、いきなり大量のメールを送信するとブロックされる確率が高くなりますので、徐々に配信数を増やす(ウォームアップする)必要があります。
SendGridにはどんな機能があるか
独自のブロックリストを保持し、バウンスした宛先に再送しない。
バウンスが発生した宛先に再送を続けると、スパムとみなされてしまうリスクがあります。
SendGridはハードバウンスとソフトバウンスに分けて対処を切り分けています。
項目 | ハードバウンス | ソフトバウンス |
---|---|---|
意味 | 恒久的な問題により届かない状況。(例:宛先が存在しないなど) | 一時的な問題により届かない状況。(例:サーバダウン、容量オーバーなど) |
処理 | 宛先のアドレスを「バウンスリスト」に登録。 | 最長72時間、自動的に再送を試みる。最終的に届かなかった場合は「ブロックリスト」に登録。 |
再送のリクエストへの対処 | 同じ宛先に送信しようとしても、SendGrid側でDropする。 | 同じ宛先に送信できる。 |
固定IPの設定と自動ウォームアップ
Pro以上のプラン限定となりますが、固定IPを設定し自動的にメール配信通数を振り分ける「自動ウォームアップ」をしてくれます。
オプトアウトリンクの自動生成
配信停止グループを設定でき、グループごとにオプトアウトのリンクを自動的に生成してくれます。
リンクをクリックした宛先は配信停止リストに登録され、次回メール送信のリクエストがあってもDropされます。
自分でやらないといけないこと
SendGridが様々な機能を提供してくれる一方で、以下のようなことは自分たちでやらないといけません。
- 送信リストのクリーニング。
- メールのコンテンツの見直し・改善。
- メールを送っても開封されない場合は、もう送信しないような配慮(Sunset Policyと呼ぶ)。
SendGridが全てを解決してくれるわけではないのですが、自分でメールを運用することを考えると導入はかなり楽になるのではないでしょうか。
みなさんもぜひSendGridを使ってみてください。