SendGridエバンジェリストの@nakansukeです。何気にQiita初投稿。
本記事は、SendGrid Advent Calendar 2016の1日目の記事です。最初はポエム的なものにしようかとも思ったんですが、そういうのは最後か記念日的なタイミングで書くこととして、今回はメール送信において重要な「レピュテーション」を取り上げようと思います。
レピュテーション自体は一般的な用語ですが、この記事では基本的にメールに関するレピュテーションについて説明します。自分の知識の中で書いておりますので、もし誤りがあれば是非コメントを。
#レピュテーションとは何か
「メール レピュテーション」などでググってみると2006年頃の記事も引っかかり古くからあるものであることが分かります。
セキュリティソリューションや、通信を制限する仕組み、手法として説明されたりしていますが、レピュテーション(reputation)はその名の通り、評判を表すものなので、技術というより指標として考えるのが自然かと思います。
では何の評判なのかというと、送信者、送信元(sender)の評判を表す指標です。英語では、sender reputationとか、reputation scoreと表現され、スコアとして定量的に表すことが多いです。そのスコアを元にGmailやHotmailなど(以降ISPと表現します)は送られてきたメールを判断します。
#誰が評価するのか
- GoogleやMicrosoftなどの各ISP
- Return Path社のSender ScoreやCisco社のSenderBaseなどの第三者サービス
の二種類が存在します。
その評価内容や方法は異なるため、GoogleがOKであってもMSではNGという可能性も大いにあります。
SendGridでも送信実績に基づくレピュテーションを各ユーザが確認できるようにしています。ただこれはあくまでもSendGridを用いた送信の結果なので目安として考えてもらえば良いと思います。算出の方法などはこちらを見てもらえば。
繰り返しとなりますが、それぞれ個別の評価指標に則っているので、どれかがOKであれば全てOKということはないです。が、逆にある1つにおいて非常に評価が低いという状態になっているとその他の評価も低いということは起こりやすいと思います。大概のバッドプラクティスは共通でしょうから。
#レピュテーションの種類
- 送信元IPアドレスに関する評価であるIPレピュテーション
- 送信元ドメインに関する評価であるドメインレピュテーション
の2種類があります。多くのISPではそれぞれを複合的に組み合わせて送信元をスコアリングしているようです。
#どうやって決まるのか
ではどうやって評価しているのでしょうか。大きく分けて2種類の判断指標があるようです。
送信者の作法的なもの
- SPF, DKIMといった送信ドメイン認証がきちんと設定されているか
- バウンス率が低いか
- スパム報告(苦情)が少ないか
- 送信ボリュームが一貫しているか
といったものがあげられます。一つ一つの詳細は省略しますが、わかりやすいのがバウンスの話です。
主にメールアドレスが存在しない場合に発生するバウンスですが、送信リクエストのあったメールアドレスのほとんどが存在しなかった場合宛先サーバはどう思うでしょうか?
ん、この人はどっかから不正なリストを買ったのではないか、適当なメアドを作って手当たり次第に送ってるのではないか、要はスパマーなのではないかと思うわけですね。また、存在しないのがわかっているのに何度も送った場合はどうなるでしょうか?これもまたスパムを疑われますよね。これがバウンスしたアドレスに対して再送してはならない理由です。いくら正当な送信者であってもそんなことは宛先サーバはわかりません。
お客様からもらったアドレスなんだから削除するわけにはならない、といった声を聞くことがありますが、それがどれだけ危険な行為であるかを認識したほうが良いです。
エンゲージメントに関するもの
少し前までは上記の作法的なものを守っていれば問題はなかったのですが、機械学習等の技術の進歩によりGmailやHotmailなどのサービスは受け取るかどうか、スパムフォルダに配送するかどうかをエンゲージメントにもとづいて判断するようになってきています。
エンゲージメントについてはまた別ポストで説明しますが、受信者と送信者の結びつきや、信頼関係の強さを表すのがエンゲージメントです(レピュテーションと似ていますね)。
簡単に言うと、毎回開封やクリックされるメールを送っているとエンゲージメントが高いと判断されます。逆にスパム報告されたり読まずに破棄され続けているような場合は低いと判断されます。
ある日突然スパムフォルダに入るようになったり、その逆が起きたりするのはこういう背景があります。
どうすればスコアを上げることができるのか
レピュテーションが低いと、受取を拒否されるか、スパムフォルダに届いてしまいます。ではどうすれば上がるのでしょうか?
上記の判断指標で悪く判定されないような送り方をしなければよいわけです。作法を守って、読まれるメールを送り続けていれば自然と上がってきます。
SendGridでは以下のMantra(真言)に従って送るよう推奨しています。
「適切なメッセージを、適切な人に、適切な時に、適切な頻度で」送りましょう。
レピュテーションは信用情報と似ています。まっさらなIPアドレスとドメインはレピュテーションがない状態からはじまり、健全な送信を続けていれば上がっていくのです。
作法的なものの中に「送信ボリュームが一貫しているか」というのがありますが、レピュテーションが低い状態で突然極端に大量の送信を送った場合、大抵スロットリングが起きたり、最悪ISPのブロックリストに追加されたりします。IPウォームアップが必要なのはこのためです。徐々にしか上がっていかないのです。
IPあっためるとかなんだよwwwwという声が聞こえてきそうですが。。。これでトラブルになるお客様は多くいらっしゃいました。IPアドレスを沢山準備して送ればいいじゃん、というのがあるかもしれませんが、そういう送り方はスノーシュー(snow-shoe)スパムと呼ばれるスパマーが好む方法であり危険です。このあたりの話もまた別ポストで。
#まとめ
単純に作法を守るだけではなく、読まれるメールを送る必要がある時代になってきています。
LINEやMessengerなどの普及でオワコンと言われがちなメールではありますが、Webサービスからユーザに対してコンタクトする手段としては未だにメールが第一の選択肢になっており、これはまだしばらく続くと思われます。
これからメール送信をする必要がある場合はレピュテーションの考慮をお忘れなく。本記事が誰かの役に立てばうれしいです。
##参考記事