Validare indirizzo email verificando record MX
03/03/2016Con una piccola funzione scritta in PHP possiamo filtrare un indirizzo email inserito da un utente controllando che non contenga caratteri 'illegali', che abbia una sintassi corretta e -soprattutto- che il server mail a cui l'indirizzo si riferisce abbia effettivamente dei record MX validi (non è garanzia che l'emai sia effettivamente esistente ma sicuramente intercettiamo tutte le email costruite random da spammer e robot).
Ecco la funzione
function email_exist($email) {
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) return false;
elseif (!checkdnsrr(array_pop(explode('@',$email)),'MX')) return false;
else return true;
}
Nei nostri script quindi utilizzeremo la funzione
if (!email_exist($_POST['email']) {
// la mail non ha passato il controllo quindi rifiutiamo....
}
enjoy :)