VALIDAR EMAILS EN PHP: MÉTODOS Y EJEMPLOS

Hasta ahora siempre había validado los emails emails en PHP usando expresiones regulares. Pero un compañero me comentó una manera bastante fácil y sencilla para validarlos. Y es usando la función filter_var y resulta bastante sencillo y seguro.
Pongo un ejemplo sencillo para que se pueda ver su funcionamiento.
$email = 'pruebas@gmail.com';
$result = filter_var($email, FILTER_VALIDATE_EMAIL);
var_dump($result);
//Mostrará el correo

$email = 'pruebasgmail.com'; $result = filter_var($email, FILTER_VALIDATE_EMAIL); var_dump($result); //Mostrará false $email = 'pruebas@gmailcom'; $result = filter_var($email, FILTER_VALIDATE_EMAIL); //Mostrará false var_dump($result);
Con lo explicado anterior mente se valida que la dirección email está construida correctamente es decir: "nombredeusuario@dominio.com". Pero con php podemos ir un paso más allá y comprobar que el dominio del email existe y consiste en usar la función checkdnsrr, esta función busca DNS de registros del tipo del registro que corresponde a un dominio.
Ejemplo:
list($name, $domain) = explode('@',$email);
  if (checkdnsrr(idn_to_ascii($domain), 'A'))
  {
  . . . 
  }
Parámetros de la función checkdnsrr, son el dominio o host y el tipo. Que son los siguientes:
  • MX
  • TXT
  • CNAME
  • A
  • NS
  • SOA
  • PTR
  • AAAA
  • ANY
  • A6
  • SRV
  • NAPTR