技術解説 · 出典付きの回答

メールアドレスのバリデーション

メールアドレスのバリデーションとは、メールアドレスが構文的に正しく、確立されたインターネット標準に準拠していることを確認するプロセスです。メッセージを送信する前に、入力されたアドレスの形式が正しいこと、そして宛先ドメインがメールを受信できるよう設定されていることを確かめます。

構文の確認

バリデーションの最初の段階では、文字列をRFC 5322の標準と照合します。アドレスにローカル部、@記号、ドメイン部が含まれていることを確認し、SMTPで即座に失敗する原因となる不正な文字、ドットの位置の誤り、要素の欠落を検出します。

DNSとMXレコードのチェック

構文のバリデーションが済むと、システムはDNSルックアップを実行してドメインが存在することを確認します。具体的には、Mail Exchanger(MX)レコードを確認します。ドメインにMXレコードがない場合やDNSの名前解決に失敗する場合、そのドメインはメールを受信できず、送信しようとするとハードバウンスになります。

送信者レピュテーションへの影響

無効なアドレスに送信するとバウンス率が上がり、送信者が質の低いリストを使っているか迷惑メールを送っているというシグナルを受信側のISPに与えます。バウンス率が高いとIPがブラックリストに載り、正当なメッセージの到達率も下がる可能性があります。

運用での実装

開発者は多くの場合、正規表現や専用のライブラリを使って入力時点でバリデーションを実装します。大量のリストの場合は、SendHQやその無料ツール(https://sendhq.cc/tools)を使うと、不正な形式のアドレスが配信パイプラインに入る前に特定できます。

バリデーションの例

user@example..comのようなアドレスは、ドットが連続しているため構文のバリデーションで失敗します。user@nonexistent-domain-12345.comのようなアドレスは構文チェックには合格しますが、DNSのMXレコードのルックアップの段階で失敗します。

よく寄せられる質問

バリデーションでメールアドレスが有効に使われていることを保証できますか?

いいえ、バリデーションで確認できるのは形式が正しいことと、ドメインがメール受信用に設定されていることです。特定のアカウントが現在有効かどうかまでは確認できません。

バリデーションと検証(verification)の違いは何ですか?

バリデーションは一般に構文とDNSのチェックを指し、検証(verification)はアドレスに実際に到達できるかを確認する、より踏み込んだチェックを指すことが多いです。

構文チェックだけでは不十分なのはなぜですか?

形式が完全に正しいメールアドレスでも、ドメインが存在しない場合や、SMTPの受信トラフィックを受け入れるよう設定されていない場合は無効になります。

一次情報源