piccola funzione per verificare un indirizzo email.
verifica che sia formalmente corretto e, in una certa misura, verifica che esista.
in una certa misura perchè, pur esistendo il dominio, non è detto che l'indirizzo esista, comunque un certo grado di sicurezza in più la da
come detto, provando il test, risulta:
verifica che sia formalmente corretto e, in una certa misura, verifica che esista.
in una certa misura perchè, pur esistendo il dominio, non è detto che l'indirizzo esista, comunque un certo grado di sicurezza in più la da
PHP:
<?php
function valida_email($email){
//per prima cosa valido formalmente l'indirizzo
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
return false;//non formalmente valido
}else{
//l'indirizzo è formalmente valido e quindi lo divido
$divisa=explode('@',$email);
//list($prefisso, $dominio) = split("@",$email);
//verifico che sia possibile utilizzare getmxrr e che il dominio esita
//ho letto che su piattaforma windows getmxrr ha dei problemi
if(function_exists("getmxrr") && getmxrr($divisa[1], $mxhosts)){
//un elenco dei record MX trovati è posto nell'array $mxhosts.
return true;//è stato possibile usare getmxrr e il dominio esiste
}elseif (@fsockopen($divisa[1], 25, $err_nu, $err_str, 5)){
return true;//non posso usare getmxrr ma il dominio esiste
}else{
return false;//il dominio non esiste
}
}
}
//TEST.......
//l'array: valida inesistente errata .. il dubbio
$em=array("info@borgo-italia.it","xx@xx.it","info#borgo-italia.it","pallo@borgo-italia.it", "a@gmail.com");
foreach($em as $e){
if(valida_email($e)){
echo "$e valida e esitente<br />";
}else{
echo "$e non è formalmente valida o non è esitente<br />";
}
}
?>
dove di sicuro pallo@borgo-italia.it non esiste e a@gmail.com è probabile che non esistainfo@borgo-italia.it valida e esitente
xx@xx.it non è formalmente valida o non è esitente
info#borgo-italia.it non è formalmente valida o non è esitente
pallo@borgo-italia.it valida e esitente
a@gmail.com valida e esitente