Vérifier l’existence d’une adresse email

logo carre@4x

Code de VVCode :

<?php
// On déclare d'abord les fonctions:
 
// Si la fonction getmxrr n'existe pas (serveur windows),
// On la créé à l'aide de la commande DOS <nslookup>
if(!function_exists('getmxrr'))
{
        function getmxrr($hostname,&$mxhosts)
        {
                if(!is_array($mxhosts))
                        $mxhosts = array();
                if( !empty( $hostname ) )
                {
                        @exec( "nslookup -type=MX $hostname", $output, $ret );
                        while( list( $k, $line ) = each( $output ) )
                        {
                                // On recherche la présence de d'entrées MX:
                                if( ereg( "^{$hostname}\tMX preference = ([0-9]+), mail exchanger = (.*)$", $line, $parts ) )
                                {
                                        $mxhosts[ $parts[1] ] = $parts[2];
                                }
                        }
                        if( count( $mxhosts ) )
                        {
                                // S'il y a plusieurs enregistrements MX, on les classe par ordre de priorité
                                reset( $mxhosts );
                                ksort( $mxhosts );
                                $i = 0;
                                while( list( $pref, $host ) = each( $mxhosts ) )
                                {      
                                        $mxhosts2[$i] = $host;
                                        $i++;
                                }
                                $mxhosts = $mxhosts2;
                                return true;
                        }else{
                                return false;
                        }
                }
        }
}
 
function mailCheck($Email)
{
        // L'adresse email doit être correctement formattée
        if(!eregi("^[[:alpha:]]{1}[[:alnum:]]*((\.|_|-)[[:alnum:]]+)*@[[:alpha:]]{1}[[:alnum:]]*((\.|-)[[:alnum:]]+)*(\.[[:alpha:]]{2,})$", $Email))
                exit('L\'adresse '.$Email.' est mal formatée');
        // On récupère le domaine
        list(,$domain ) = split('@',$Email);
        // On cherche des enregistrements MX dans les DNS
        if (getmxrr($domain, $MXHost))
                $ConnectAddress = $MXHost[0];
        else
                $ConnectAddress = $domain;
        // On créé la connexion sur le port smtp (25)
        $Connect = @fsockopen($ConnectAddress,25,&$errno,&$errstr);
        if($Connect)
        {
                if(ereg("^220", $Out = fgets($Connect, 1024)))
                {
                        fputs ($Connect, "HELO {$_SERVER['HTTP_HOST']}\r\n");
                        $Out = fgets ( $Connect, 1024 );
                        fputs ($Connect, "MAIL FROM: <{$Email}>\r\n");
                        $From = fgets ( $Connect, 1024 );
                        fputs ($Connect, "RCPT TO: <{$Email}>\r\n");
                        $To = fgets ($Connect, 1024);
                        fputs ($Connect, "QUIT\r\n");
                        fclose($Connect);
                        // Si le code renvoyé par la commande RCPT TO est 250 ou 251 (cf: RFC)
                        // Alors l'adresse existe
                        if (!ereg ("^250", $To) && !ereg ( "^251", $To ))
                                // Adresse rejetée par le serveur
                                return false;
                        else
                                // Adresse acceptée par le serveur
                                return true;
                }else{
                        // Le serveur n'a pas répondu
                        return false;
                }
        }else{
                // Connexion au serveur de messagerie impossible
                // vous pouvez afficher le message d'erreur en décommentant la ligne suivante:
                // echo $errno."-".$errstr;
                return false;
                
        }
}
 
// Définissez ici l'adresse à vérifier
$mail = 'test@test.com';
 
 
if(mailCheck($mail))
        echo 'L\'adresse existe';
else
        echo 'L\'adresse n\'existe pas ou une erreur est survenue';
?>
Code de Ethan Marley :

Code de Ethan Marley :

$email = $_GET['mail'];
 
if ($email) {
 
$url = 'http://www.ipaddresslocation.org/email_lookup/check-email.php?email=';
 
$tabmail = explode(";", $email);
 
foreach ($tabmail as $key => $val) {
 
$file = file_get_contents($url.$val, true);
 
if (fct_InStr($file, 'is <br />a valid deliverable e-mail box address.'))
 
echo '<font color="green">' . $val . ' : adresse mail OK</font>';
 
else
 
echo '<font color="red">' . $val . ' : adresse mail KO</font>';
 
echo '<br>';
 
}
 
} else {
 
echo '<font color="red">Aucune adresse mail renseignée</font>';
 
}
 
?>

La balise <font> est obsolète depuis plus de 15 ans, elle ne devrait plus être dans vos codes.

Posted in Uncategorized