puo essere utile, soprattutto nei form, validare l'indirizzo email inserito da un utente, non solo
verificando che sia formalmente velido, ma avere una certa sicurezza che l'indirizzo esista.
questa funzione, penso dia una certasicurezza (non il 100x100).
penso che la funzione sia adeguatamente commentatata
verificando che sia formalmente velido, ma avere una certa sicurezza che l'indirizzo esista.
questa funzione, penso dia una certasicurezza (non il 100x100).
penso che la funzione sia adeguatamente commentatata
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);
//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("[email protected]","[email protected]","info#borgo-italia.it","[email protected]");
foreach($em as $e){
if(valida_email($e)){
echo "$e valida e esitente<br />";
}else{
echo "$e non è formalmente valida o non è esitente<br />";
}
}
//il dubbio è che probabilmente [email protected] non esiste ma gmail.com si
//analogo discorso per i vari indirizzi tipo @libero.it o @email.it.....
?>