メール検証の仕組み
メール検証は、複数のチェックを積み重ねたものです。レイヤーが深くなるほどコストは上がりますが、より詳細なデータが得られます。過剰な支払いを避けるためには、適切なレイヤーを選択する必要があります。
レイヤー1:構文チェック
このチェックでは、文字列がメールアドレスの形式に則しているかを確認します。正規表現(regex)を使用して、余分なスペースや記号の欠落などのエラーを検出します。高速かつ無料で行えますが、精度は低いです。nobody@asdf.asdf のような偽のアドレスでも、このテストは通過してしまいます。
レイヤー2:MXレコードチェック このチェックではドメインを確認します。メールを受信するすべてのドメインは、DNSにMXレコードを持っています。クイックルックアップによって、これらのレコードが存在するかどうかを判断できます。ドメインにMXレコードがない場合、そのドメインはメールを受信できません。このステップにより、多くの偽ドメインを排除できます。
レイヤー3:SMTPチェック これは最も深いレベルの検証です。システムがメールサーバーに接続し、特定のメールボックスが存在するかどうかを問い合わせます。実際のメッセージは送信しません。このレイヤーには以下のような欠点があります:
- ライブ接続を必要とするため、時間がかかる。
- 多くのサーバーが、あらゆるリクエストに対して「存在する」と回答してしまう。
- プロバイダーがこれらのプローブ(探索)をブロックすることがよくある。
SMTPチェックは、古いリストのクリーニングに最も効果的です。新規登録のプロセスにおいては、あまり価値がありません。
その他の有用なシグナル:
- 使い捨てメールの検出:使い捨てメールプロバイダーを特定します。
- ロール(役割)検出:
info@やadmin@のようなアドレスを特定します。 - タイポ(打ち間違い)の提案:
gmial.comのような間違いを検知します。 - 到達性スコア:簡単にソートできるよう、単一の数値を提供します。
サインアップフォームにおける最善の戦略: 構文チェック、MXチェック、およびヒューリスティック(経験則)を使用してください。これにより、ほとんどの不正なアドレスを迅速かつ低コストで検知できます。サインアップ時にSMTPプローブを行うのは避けましょう。SMTPは、期限切れのバルクリストのクリーニング用に取っておきましょう。
ツールを選ぶ前に、何を防止する必要があるのかを明確にしてください。
出典: https://dev.to/atek/how-email-verification-works-syntax-mx-and-smtp-explained-4k2n