In questo articolo vedremo come creare una funzione in grado di validare nello stesso tempo sia un indirizzo di posta elettronica che un nome di dominio.
La parte più rilevante della funzione viene svolta dal costrutto nativo checkdnsrr() che ha il compito di controllare i records DNS relativi ad un host Internet o ad un indirizzo IP.
I pratica checkdnsrr() effettua una ricerca dei records DNS di tipo differente (come ad es: A, MX, NS, SOA, PTR, CNAME o ANY) corrispondenti ad un determinato host; quindi restituisce TRUE se i records sono trovati, FALSE in caso contrario o se si verifica un errore.
Ecco il codice della nostra piccola applicazione:
<?php function validaMail($mail){ $valida = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$"; if(eregi($valida,$mail)){ if(checkdnsrr(array_pop(explode("@",$mail)),"MX")){ echo("L'indirizzo ". $mail . " è valido<br>"); }else{ echo("Mai valida. Dominio non valido.<br>"); } }else{ echo("L'indirizzo ". $mail . " non è valido<br>"); } } validaMail("sito.it"); validaMail("mail@sito.it"); validaMail("mail@sitositosito.it"); ?>Nell'uso dello script proposto è necessario tenere conto del fatto che la funzione checkdnsrr() non è stata implementata per funzionare su sistemi operativi Windows.