Kontrola syntaxy e-mailu je bežná, ale čo by ste povedali na to skontrolovať, či zadaná e-mailová adresa naozaj existuje?

<?
 
/*
 By: Jon S. Stevens jon@clearink.com
 Copyright 1998-1999 Jon S. Stevens, Clear Ink
 This code has all the normal disclaimers.
 It is free for any use, just keep the credits intact.
*/
 
function validateEmail ( $email )
{
    global $SERVER_NAME;
    $return = array ( false, "" );
    list ( $user, $domain )  = split ( "@", $email, 2 );
    $tld = $domain;
    if ( checkdnsrr ( $tld, "MX" ) )
    {
        if ( getmxrr ( $tld, $mxhosts, $weight ) )
        {
            for ( $i = 0; $i < count ( $mxhosts ); $i++ )
            {
                $fp = fsockopen ( $mxhosts[$i], 25 );
                if ( $fp )
                {
                    $s = 0;
                    $c = 0;
                    $out = "";
                    set_socket_blocking ( $fp, false );
                    do
                    {
                        $out = fgets ( $fp, 2500 );
                        if ( ereg ( "^220", $out ) )
                        {
                            $s = 0;
                            $out = "";
                            $c++;
                        }
                        else if ( ( $c > 0 ) && ( $out == "" ) )
                        { break; }
                        else
                        { $s++;    }
                        if ( $s == 9999 ) { break; }
 
                    } while ( $out == "" );
                    set_socket_blocking ( $fp, true );
 
                    fputs ( $fp, "HELO $SERVER_NAME\n" );
                    $output = fgets ( $fp, 2000 );
                    fputs ( $fp, "MAIL FROM: <info@" . $tld . ">\n" );
                    $output = fgets ( $fp, 2000 );
                    fputs ( $fp, "RCPT TO: <$email>\n" );                
                    $output = fgets ( $fp, 2000 );
                    if ( ereg ( "^250", $output ) )
                    {
                        $return[0] = true;
                    }
                    else
                    {
                        $return[0] = false;
                        $return[1] = $output;
                    }
                    fputs ( $fp, "QUIT\n" );
                    fclose( $fp );
 
                    if ( $return[0] == true )
                    { break; }
                }
            }
        }
    }
    return $return;
}
?>