Validare una mail e un dominio con PHP

24/10/2007

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.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home