What are best practices for validating email addresses in PHP registration forms?

Validating email addresses in PHP registration forms involves checking if the email address provided by the user follows the correct format and ensuring that the domain of the email address exists. One common method is to use PHP's filter_var function with the FILTER_VALIDATE_EMAIL filter to validate the email address format, and then use DNS validation to check if the domain exists.

$email = $_POST['email'];

// Validate email address format
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // Invalid email address format
    echo "Invalid email address";
} else {
    // Check if domain exists
    list(, $domain) = explode('@', $email);
    if (!checkdnsrr($domain, 'MX')) {
        // Domain does not exist
        echo "Invalid email address domain";
    } else {
        // Email address is valid
        echo "Email address is valid";
    }
}