Recursos y Contenidos para Webmaster y Freelances del Diseño
Categoría: Códigos PHP
Comprobar si un e-mail es válido con PHP

Con una sencilla funcion donde reviso el email usando expresiones regulares, en case de no cumplirse devuelve FALSE si se cumple devuelve TRUE

 function comprobar_mail($mail){
  if (!
ereg(^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$,$mail)){
      return
FALSE;
  } else {
       return
TRUE;
  }

}

Como usarlo?
Simple, solo debo pasar por la funcion el email que quiero revisar y comprobar que es lo que esta funcion devuelve con un simple if como se muestra a continuacion:


 $email=algo@dominio.com;
if(
comprobar_mail($email)){/*Si la funcion devuelve TRUE, osea que si esta correcto muestro un mensaje o lo que quiera mostrar*/
        
echo Sintax Mail Correcto;
}else{
        echo
Sintax Mail Erroneo;/*Si devolivio False osea que esta mal muestro un mensaje o lo que quiera mostrar*/
}

Y para verificar la existencia de una direccion se puede utilizar la funcion

getmxrr() , pero solo en servidores *.nix




Tu Comentario!

.
El uso de expresiones regulares es muy poderoso, pero a la vez complicado. Creo que a esta validacion le faltan un par de cosas, como por ejemplo que no premita varios simbolos de @ (arroba), o puntos antes o despues de ella, dos puntos seguidos (..), que no termine en punto...

P.D. Espero no suene irespetuoso, pues no es mi intencion.
Icon Dijo: Jhon Jaiver Lopez

.
De acuerdo con el manual en php:

Nota: Esta función no debe ser usada para propósitos de verificación de direcciones. Solo los puntos de intercambio de correo en DNS son devueltos, sin embargo, de acuerdo a RFC 2821, cuando no se listan puntos de intercambio de correo, nombre_host mismo debería ser usado como el único punto de intercambio de correo con una prioridad de 0.

Nota: Esta función no es implementada en plataformas Windows. Intente la clase de PEAR Net_DNS.

http://www.php.net/manual/es/function.getmxrr.php
Icon Dijo: Liliana