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

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

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-05 09:44:40685ブラウズ

How to Reliably Validate Email Addresses in PHP?

PHP で電子メール アドレスを検証する方法: 総合ガイド

電子メール アドレスの検証は、データの正確性と信頼性を確保するために非常に重要です。正規表現の使用は実行可能なオプションのように思えるかもしれませんが、その制限を理解することが不可欠です。

Regex を使用した電子メール アドレス検証の課題

次を使用して電子メール アドレスを検証しようとします。正規表現は、電子メール アドレスの構文が複雑であるため、常に課題に直面します。提供された正規表現は、Unicode 文字を含むものなど、さまざまな有効な電子メール形式を考慮できません。

filter_var() の優位性

電子メール アドレス検証に推奨される方法PHP の filter_var() 関数は、定義されたより堅牢な検証ルールのセットを使用します。 RFC 5322、5321、および 3696 によって規定されています。この関数は、電子メール アドレスが標準構文に準拠していることを確認するための信頼性が高く効率的な方法を提供します。

例 1: 電子メール検証に filter_var() を使用する

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

追加のチェック: MX レコード検証

filter_var() は構文を検証しますが、電子メール アドレスの存在は保証されません。これに対処するには、checkdnsrr() 関数を使用して MX レコード チェックを実行できます。

例 2: MX レコードの検証

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // Invalid email address
} else if (!checkdnsrr($domain, 'MX')) {
    // Domain does not define an MX record
} else {
    // Valid email address with a valid MX record
}

構文と MX を超えてレコード

構文と MX レコードの検証は重要ですが、これらは電子メール アドレスの存在を保証するものではないことに注意することが重要です。確実に確認する唯一の方法は、確認メールなどの電子メール検証技術を使用することです。

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

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