par
nestoyeur » 07 avr. 2010, 15:30
Bonjour,
J'ai lus sur le site de php.net qu'il ne fallait pas utiliser la fonction getmxrr afin de vérifier la validité d'une adresse e-mail.
En ce qui me concerne j'aimerais utiliser cette fonction afin de vérifier tout les e-mail de ma base de donné:
Code : Tout sélectionner
function mailCheck($Email)
{
usleep(10000);
list(,$domain ) = split('@',$Email);
if (getmxrr($domain, $MXHost))
$ConnectAddress = $MXHost[0];
else
$ConnectAddress = $domain;
$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);
if (!ereg ("^250", $To) && !ereg ( "^251", $To ))
// Adresse rejetée par le serveur
// code concerné ...
else
// Adresse acceptée par le serveur
// code concerné ...
}else{
// Le serveur n'a pas répondu
// code concerné ...
}
}else{
// Connexion au serveur de messagerie impossible
// code concerné ...
}
}
Mais avant tout, j'aimerais savoir pourquoi php.net signale qu'on ne dois pas l'utiliser ainsi et quel son les risques ?!
Bonjour,
J'ai lus sur le site de php.net qu'il ne fallait pas utiliser la fonction getmxrr afin de vérifier la validité d'une adresse e-mail.
En ce qui me concerne j'aimerais utiliser cette fonction afin de vérifier tout les e-mail de ma base de donné:
[code]function mailCheck($Email)
{
usleep(10000);
list(,$domain ) = split('@',$Email);
if (getmxrr($domain, $MXHost))
$ConnectAddress = $MXHost[0];
else
$ConnectAddress = $domain;
$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);
if (!ereg ("^250", $To) && !ereg ( "^251", $To ))
// Adresse rejetée par le serveur
// code concerné ...
else
// Adresse acceptée par le serveur
// code concerné ...
}else{
// Le serveur n'a pas répondu
// code concerné ...
}
}else{
// Connexion au serveur de messagerie impossible
// code concerné ...
}
}[/code]
Mais avant tout, j'aimerais savoir pourquoi php.net signale qu'on ne dois pas l'utiliser ainsi et quel son les risques ?!