ホームページ >バックエンド開発 >PHPチュートリアル >PHP で電子メール アドレスを効果的に検証するにはどうすればよいですか?

PHP で電子メール アドレスを効果的に検証するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-03 04:57:40405ブラウズ

How Can I Effectively Validate Email Addresses in PHP?

PHP での電子メール アドレスの検証

PHP での電子メール アドレスの検証は複雑なタスクになる場合があります。単純な正規表現は十分であるように見えますが、RFC 仕様や例外の微妙な違いを処理するには不十分であることがよくあります。

filter_var() の使用

最も簡単で信頼性の高いアプローチは、filter_var( ) 関数。事前定義されたフィルター定数 FILTER_VALIDATE_EMAIL を使用して、正しい形式の電子メール アドレスをチェックします。

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // Invalid email address
}

MX レコードを確認します

検証をさらに強化するには、MX の存在を確認します。メールの記録ドメイン:

if (!checkdnsrr($domain, 'MX')) {
    // Invalid domain
}

制限事項

これらの対策を講じたとしても、メールが存在するという絶対的な保証はありません。確認メールは、アクティブなアカウントを確認する唯一の確実な方法のままです。

正規表現の制限

メール アドレスを検証するための包括的な正規表現を作成することは、ほぼ不可能です。誤検知を避けながらすべての有効なアドレスを捕捉しようとするのは無駄な努力です。 PHP の組み込みの filter_var() 関数でも、特定のシナリオでは制限が生じます。

詳細

電子メール検証についてより深く理解するには、RFC を詳しく調べることをお勧めします。仕様:

  • RFC5322
  • RFC5321
  • RFC3696
  • RFC6531 (Unicode 文字)

以上がPHP で電子メール アドレスを効果的に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。