グレーリスティングとは?
グレーリスティングとは、受信メールサーバーが、初めて見る送信者からのメッセージを一時的に拒否するスパム対策の手法です。送信者には後で再試行するよう伝えられ、再試行するとメッセージが受け付けられます。正当なメールサーバーは自動的に再試行する一方、多くのスパムシステムは再試行しない、という考え方に基づいています。
定義
グレーリスティングは、ドメインに代わってメールを受信するソフトウェアであるメール転送エージェント(MTA)が適用するスパムフィルタリングの手法です。受信サーバーが認識していない送信者からメッセージが届くと、サーバーはメッセージを受け付けず、かといって完全に拒否もしません。代わりに一時的な拒否を返し、実質的に「後でもう一度お願いします」と伝えます。
この名前はその仕組みをよく表しています。ブロックリストは明確な「ノー」、許可リストは明確な「イエス」であり、グレーリスティングはその中間の意図的な「保留」にあたります。受信サーバーは最初の接触では判断を保留し、送信者が次にどうするかを見守ります。行儀の良い送信者はメールの標準が求めるとおり再試行し、受け付けてもらえます。1回失敗しただけでメッセージを諦める送信者は、決して通過できません。
グレーリスティングが機能するのは、送信者の振る舞いに非対称性があるからです。適切に設定されたメールサーバーは、一時的な失敗を通常の出来事として扱い、メッセージをキューに入れて再試行します。メールでは一時的な問題がよくあるからです。一方、多くの大量スパム業者は高速な一回きりの配信を前提に作られており、再試行キューを持たないため、一時的な拒否だけでそのスパムは消えてしまいます。グレーリスティングは、メールプロトコルの基本的な要件を低コストのフィルターに変えるのです。
仕組み
メッセージが届くと、グレーリスティングを行うサーバーは、一般にトリプレットと呼ばれる3つの情報を記録します。送信サーバーのIPアドレス、送信者のメールアドレス、受信者のメールアドレスです。そして、このトリプレットを以前に見たことがあるかを確認します。見たことがなければ、サーバーは4xxのSMTP応答コード(多くは451)で一時的な失敗を返します。メールの標準では、これは「諦める」ではなく「後で再試行する」を意味します。具体的なコードや文言は、メールサーバーのソフトウェアによって異なります。
ここで送信サーバーには選択肢があります。正当なサーバーは4xx応答を一時的なエラーとして扱い、メッセージを送信キューに保持して再試行をスケジュールします。メールの標準では、再試行の間隔は少なくとも30分、諦めるまでの時間は数日と定められていますが、実際の実装は大きく異なります。Sendmailは約15分後、Postfixは約16分半後に再試行し、Microsoft Exchangeは独自のスケジュールに従います。再試行が届き、十分な時間が経過していれば、サーバーは見覚えのあるトリプレットを確認してメッセージを受け付けます。多くのグレーリスティングシステムは、その後トリプレットまたは送信元IPを自動許可リストに追加し、以降のメールが遅延なく配信されるようにします。
誤った拒否を減らすため、現在のグレーリスティングは厳密なトリプレット方式よりも寛容になっています。大規模な送信者はサーバーのプールから配信するため、再試行が最初の試行とは異なるIPから来ることは正当にあり得ます。これに対応するため、多くのシステムは同じネットワークブロック内のアドレスを同等とみなしたり、送信者のSPFレコードを使って許可された送信プール全体を認識したりして、そのプール内のどのサーバーからの再試行も同じ送信者として扱います。
メール 到達率に とって 重要な 理由
ほとんどの送信者にとって、グレーリスティングは障壁ではなく遅延です。信頼できるメールプラットフォームは正しく再試行するため、グレーリスティングされたメッセージは少し遅れて届くだけで、通常は最初の試行から約15分後です。受信サーバーが受け入れているトレードオフは、最初の接触時のわずかな遅延と引き換えに、手軽なスパムのかなりの部分をメールボックスに届く前に除外することです。
ただし、時間が重要なメールでは、この遅延が実際の問題になります。パスワードリセットのリンク、ワンタイム認証コード、注文確認は数秒以内に届くことが期待されることが多く、15分のグレーリスティングによる遅延で、リセットリンクの有効期限が切れたり、顧客がメッセージが失われたと思って再度試したりすることがあります。グレーリスティングは誤作動することもあります。送信プールの設定が不十分な場合、認識されたネットワーク範囲外のサーバーから再試行が来る場合、あるいはドメインの複数のMXサーバーがそれぞれ異なるグレーリスティングのポリシーを適用しており、再試行が最初の試行を記憶していない別のサーバーに届く場合などです。
グレーリスティングは、メールアドレスを検証するすべての人にとっても重要であり、ここでリストの品質と関わってきます。検証サービスがグレーリスティングを行うサーバーに初めてSMTP接続を開くと、サーバーがメールボックスの存在を確認する前に、4xxの一時的な拒否を受け取ることがあります。サーバーはアドレスを受け付けても拒否してもいないため、1回の試行では有効か無効かの確定的な結果を出せません。グレーリスティングを考慮しない検証ツールは、単にそのアドレスを不明とすることがあります。だからこそ、グレーリスティングを適切に処理することは、例外的なケースではなく、正確な検証の一部なのです。
VeriMailsでの 対応
VeriMailsは、検証のSMTP段階でグレーリスティングを認識し、それに阻まれないよう設計されています。VeriMailsが受信者のメールサーバーとリアルタイムのSMTPハンドシェイクを行い、グレーリスティングと一致する4xxの一時的な拒否を受け取った場合、その1回の応答を最終的な答えとして扱いません。検証ロジックが一時的な保留と恒久的な拒否を区別するため、グレーリスティングを行うサーバーを使われていないメールボックスと取り違えることはありません。
この処理は、サーバーがグレーリスティングを行う場合にVeriMailsがより明確な結果を返せる理由のひとつです。目指しているのは、サーバーがグレーリスティングを行うたびにあいまいな「不明」を返すのではなく、有効、無効、キャッチオール、またはその他の定義されたステータスといった、明確で信頼できる結果を返すことです。グレーリスティングは、VeriMailsが考慮している実際のサーバーの挙動のひとつにすぎません。それによって、結果は特定のメールサーバーの癖ではなく、本当の到達率を反映します。VeriMailsは明確な到達率のシグナルを返し、あいまいな数値スコアは付けません。
リアルタイムチェックにはVeriMailsのREST APIを、リスト全体の一括検証にはCSVのアップロードを利用できます。送信前にアドレスを検証しておけば、グレーリスティングが遅らせるのはもともと配信可能だった受信者へのメールだけになり、無効なアドレスだらけのリストで問題が重なることはありません。検証は1件あたり$0.0019から、10,000クレジットが$19、年払いプランは年額請求で月額$12.50から。新規アカウントにはすべて100クレジットが無料で付与され、クレジットカードは不要、クレジットに有効期限もありません。