En nuestro anterior post tratábamos la validación de los emails desde un plano más teórico, pero en este nos vamos a meter hasta el fondo en cómo hacerlo….
Validación sintáctica:
El estándar se encuentra recogido en las normas que definen el protocolo SMTP (Simple Mail Transfer Protocol) y que son la RFC 5321, RFC 5322 y la RFC 651. Aquí se definen cosas como la longitud máxima de una dirección de email, los caracteres (letras, números, símbolos, etc) que la pueden contener, y la posición en la que deben ir.
Esto permite a los servidores distinguir entre fernando.ejemplo@midominio.com , la cual es sintácticamente válida, y otras muchas que no lo son, como fernando@ejemplo@midominio.com , fernando.ejemplo@midominioseguidodecoma,com , y otros miles de ejemplos.
Si nosotros podemos verificar de nuestro fichero de direcciones de email cuales no cumplen estas normas, podremos eliminarlas de nuestros envíos mejorando costes y ratios.
Una forma de realizar esta validación es hacer uso del programa RegEx, con algún patrón que cumpla con estas normas. RegEx nos permite validar un texto comparándolo con un patrón dado y nos confirmará si cumple o no con el patrón.
La exactitud de la verificación vendrá en función del nivel de complejidad del patrón de RegEx programado…. Uno sencillo, validará un porcentaje alto de cuentas de email, pero con las más complejas (con puntos, guiones u otros caracteres no alfanuméricos) podrá cometer errores.
Aquí dejo un patrón sencillo, como referencia y para que puedan tener una idea de que apariencia tiene un patrón de RegEx:
^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
Hay muchas webs y recursos dedicados a validar RegEx, así que es fácil entrar en Google y buscar.
Validación del dominio del email:
El dominio de un email es todo lo que se encuentra a la derecha del símbolo @, no incluyendo este último.
¿Cómo se puede saber si un dominio sigue activo?. Pues esto es posible interrogando a un servidor DNS (Domain Name System) sobre la información dicho dominio, por ejemplo utilizando el comando nslookup de Windows desde una ventana de comandos.
Este es un ejemplo solicitando la información del diario El País:

En la línea que contiene la palabra “Nombre:” figura el nombre del dominio que hemos consultado, seguido de la línea “Addresses:” que indica que efectivamente existen servidores activos para ese dominio y nos devuelve sus direcciones IP. Ya sabemos que el dominio al que pertenece esa dirección de email es correcto.
En caso contrario la respuesta que recibiríamos sería similar a esta (observe que en este caso se consulta el dominio elpaxis.es):

Los trazos de color rojo contienen la información de la dirección desde la que hemos realizado la consulta y se han ocultado por motivos de confidencialidad.
Validación de la cuenta del email:
Para ello el primer paso sería utilizar de nuevo el comando nslookup para obtener la información del nombre del servidor de correo de un dominio dado. Siguiendo el ejemplo anterior, el resultado del comando es el siguiente:

Como se aprecia, en este ejemplo la respuesta nos indica que el servidor de correo del dominio elpais.es es smtp.siaple.es
A partir de aquí, es necesario abrir una sesión de telnet desde la ventana de comandos para hacer consultas SMTP.
Seguiremos con nuestro ejemplo para validar una dirección de email perteneciente al dominio elpais.es.
Lo primero será introducir en la ventana de comandos la instrucción

Tras ella se abrirá el entorno de comandos de telnet en la que se introducirán los comandos de las líneas marcadas en verde y donde hemos puesto la caja de color amarillo debéis introducir en la primera la dirección de email de emisión y en la segunda la que queréis validar, pulsando intro después de cada comando.
La secuencia completa sería:
- telnet elpais.es smtp <intro>
- helo me <intro>
- mail from:email@origen.com<intro>
- rcpt to:email@quequeremosvalidar.com<intro>

En este caso, la respuesta 250 Acepted indica que el buzón de email existe.
Y esto es todo…. Cualquier comentario ya saben Vds. J
Deja una respuesta