Vamos a ir directamente a la respuesta corta y nos ocuparemos de la explicación larga después.

Sencillamente, no.

Ya oigo a los desarrolladores y a los defensores del diablo cuestionar nuestra contundente negación de la validación del correo electrónico con regex, lo que nos lleva a preguntarnos, además, por qué existe.

Bueno, no vamos a negar que puede ser una herramienta útil, y ciertamente es un pequeño kit inteligente para evitar que los usuarios añadan cualquier texto viejo en un formulario u otro medio ejecutable. En un momento dado, el regex del correo electrónico tenía su papel en la forma de recopilar los datos del correo electrónico.

¿Pero ahora? ¿En línea con la tecnología y los estándares actuales?

Decimos que ha tenido su día.

Si quieres asegurarte de que obtienes direcciones de correo electrónico limpias que no van a estropear tu marketing por correo electrónico, tus tasas de rebote, las puntuaciones de entregabilidad y todas las cosas que sabes que necesitas para mantener tus métricas altas y tus conversiones, entonces regex no es el camino.

¿Qué es la regex de validación del correo electrónico?

Regex es la abreviatura de expresión regular; es un término utilizado en varios lenguajes de codificación. Regex, o expresiones regulares, se refiere a cadenas de texto codificadas diseñadas para coincidir con patrones encontrados en otras cadenas.

Pueden ser muy útiles cuando un usuario necesita hacer coincidir una cadena de caracteres con un tipo de patrón particular para verificar que la información suministrada parece correcta. Piense en los números de teléfono, los códigos postales, las fechas y, sí, el gran tema que nos ocupa: las direcciones de correo electrónico.

Con un patrón simple, se puede hacer coincidir una cadena exacta con un conjunto de reglas. Cuando los patrones simples se vuelven más complicados, el regex se vuelve menos eficiente y es más probable que ofrezca malos resultados.

Hasta ahora suena bien, así que, ¿cuál es el problema con la validación regex del correo electrónico?

Por muy ingeniosa que sea la herramienta regex, no cubre las comprobaciones que necesitas. Echa un vistazo a estos:

[email protected]
[email protected]
[email protected]
[email protected]

Supongamos que usted detecta cualquiera de los casos anteriores como incorporaciones a su lista de correo electrónico; los marcaría de inmediato (¡o debería hacerlo!). No creerías que ninguna de ellas fuera una entrada válida de personas reales que mostraran interés por tu producto y servicio.

Sin embargo, la validación de correo electrónico Regex sí lo haría. Los dejaría pasar a todos.

¿Por qué? Porque esas direcciones evidentemente falsas siguen los patrones que sus reglas establecen para confirmar.

Ahora no parece tan inteligente, ¿verdad?

Es demasiado restrictivo

A pesar de que los ejemplos anteriores nos parecen tan obviamente falsos, algunos formatos de correo electrónico incluyen muchos más caracteres especiales de los que estamos acostumbrados a ver.

En su forma más sencilla, la dirección de correo electrónico sigue el siguiente formato:

nombre de usuario@dominio

Las direcciones de correo electrónico se construyen en tres secciones:

  • La parte local - normalmente un nombre de usuario o un rol de trabajo
  • El carácter @
  • El dominio, incluyendo un TLD (Top Level Domain) válido

Si eso fuera todo lo que el código tuviera que buscar, entonces una típica comprobación regex de javascript evitaría que muchos contactos malos acabaran en nuestras listas.

Normalmente, nuestras direcciones de correo electrónico pueden incluir los siguientes caracteres:

  • Dígitos: 0 a 9
  • Letras minúsculas y mayúsculas: de la a a la z y de la A a la Z
  • Caracteres especiales adicionales: !#$%&'*+-/=?^_`{|}~
  • El carácter punto [.]: Pero no como primer o último carácter, ni utilizado consecutivamente

Si alguien se inscribiera en su lista de correo electrónico con alguno o varios de esos caracteres especiales, la mayoría de nosotros se preguntaría si algo va mal, y nos equivocaríamos: todos están permitidos según la convención actual.

Regex no comprueba nada más que la sintaxis

Puede que a los desarrolladores sólo les preocupe obtener direcciones que parezcan válidas a través de un formulario, pero a nosotros no. Nosotros necesitamos saberlo:

  • ¿Existe el dominio?
  • ¿Hay un registro MX que demuestre que el dominio tiene un servidor de correo?
  • ¿Tiene la dirección de correo electrónico una cuenta de correo electrónico que funcione?

Cualquiera de estas preguntas que marque un "no" recibirá un duro "no" por parte de nosotros como vendedores, también. Regex no comprueba nada de eso, solo una herramienta de validación de correo electrónico dedicada sacará esas banderas rojas.

No detecta las direcciones temporales y desechables

Como vendedores de correo electrónico, otra cosa de la que somos más que conscientes es que muchos usuarios crean cuentas temporales falsas para aprovechar una oferta, promoción u otra situación. Es una manera fácil de evitar añadir desorden a sus cuentas de correo electrónico existentes o dar cualquier información sobre sí mismos que no quieren.

Es fácil crear una dirección de correo electrónico temporal o desechable como solución única. Esas direcciones suelen desaparecer a los 10 o 15 minutos de ser creadas, lo que las hace increíblemente aptas para su uso.
Regex no comprueba esos datos. Las direcciones de correo electrónico temporales y desechables pasan todas las pruebas de validación regex.

¿Cómo se configura un regex javascript para el correo electrónico?

Si eres un desarrollador novato, probablemente no necesitarás que te digamos cómo hacerlo, pero para los que tienen algo de experiencia en codificación, debería ser algo así:

function ValidateEmail(inputText)

{

var mailformat = [a-z0-9!#$%&’*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&’*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

if(inputText.value.match(mailformat))

{

alert("Esta no es una dirección de correo electrónico válida");

devolverá el falso;

}

}

La parte que hace todo el trabajo pesado es la var mailformat línea. La ejecución y los caracteres de esa larga línea de código definen lo que está permitido y lo que no.

Puedes detectar las cosas sencillas: a-z, A-Z, 0-9y luego los caracteres especiales en la primera sección local. La página web +@ dicta el separador local y de dominio. Después de la @ tenemos otra serie de instrucciones sobre lo que está permitido en la sección de dominio.

Si quieres una visión mucho más profunda de lo que se necesita para implementar un validador regex, entonces dirígete a abstract. Tienen una guía muy buena sobre lo que se necesita y son expertos en todo tipo de adiciones e inclusiones de la API.

Si un trabajo vale la pena hacerlo, vale la pena hacerlo bien, así que valide sus listas de la mejor manera posible

Sólo hay una forma de asegurarse de que sus listas de correo electrónico están en condiciones óptimas, y es utilizar una herramienta de validación de correo electrónico específica, como Bouncer.

La validación Regex podría ser responsable de dejar entrar direcciones de correo electrónico falsas en sus listas de correo electrónico, así como de bloquear las válidas. A la hora de añadir un método de autenticación a tus formularios online o métodos de recogida de datos, te sugerimos otras formas de validación más robustas.

En última instancia, la gestión de sus listas de correo electrónico a través de una plataforma como Bouncer es la mejor manera, con diferencia, de mantener sus listas limpias y saludables, sus tasas de rebote bajas, su capacidad de entrega alta y su puntuación de remitente en plena forma.

FAQ de Regex para mensajes de correo electrónico

¿Qué es una regex simple para la validación de correo electrónico?

Una simple regex (expresión regular) para la validación de correo electrónico es una secuencia de caracteres que define un patrón de búsqueda de direcciones de correo electrónico. Puede utilizarse para comprobar si una cadena coincide con el formato estándar de una dirección de correo electrónico. Sin embargo, es importante tener en cuenta que una expresión regular simple puede no detectar todas las direcciones de correo electrónico no válidas y permitir el paso de algunos formatos de correo electrónico no estándar.

¿Cómo ayuda la regex a filtrar las direcciones de correo electrónico no válidas?

Email regex se utiliza para comparar la cadena de entrada (la dirección de correo electrónico introducida por un usuario) con un formato específico. Si la dirección de correo electrónico no coincide con este formato, se considera inválida. Esto puede ayudar a evitar errores tipográficos, garantizar la coherencia de los datos y proteger contra ciertos tipos de ataques de inyección.

¿Qué es un carácter de espacio en blanco en el contexto de la regex del correo electrónico?

Un carácter de espacio en blanco en regex de correo electrónico se refiere a cualquier carácter que se utilice para representar espacios en blanco, como espacios, tabulaciones o saltos de línea. En el contexto de las direcciones de correo electrónico, los espacios en blanco no suelen estar permitidos, y su presencia invalidaría una dirección de correo electrónico.

¿Qué es una expresión regular compleja de correo electrónico?

Una expresión regular de correo electrónico compleja es una expresión regular más detallada y precisa utilizada para la validación de correo electrónico. Puede tener en cuenta varios aspectos de las direcciones de correo electrónico, como nombres de dominio, caracteres no latinos y reglas específicas sobre dónde pueden aparecer determinados caracteres. Aunque proporciona una validación más completa, también puede ser más difícil de implementar y mantener.

¿Cómo gestiona la expresión regular del correo electrónico los caracteres no latinos y Unicode?

El manejo de caracteres no latinos y Unicode en la regex del correo electrónico puede ser complejo. Algunos sistemas de correo electrónico permiten Unicode o direcciones de correo electrónico no latinas, pero no son compatibles de forma universal. Una regex de correo electrónico compleja puede incluir clases de caracteres que coincidan con caracteres no latinos, pero es esencial conocer los requisitos y restricciones específicos del sistema de correo electrónico con el que se trabaja.

¿Qué papel desempeñan las clases de caracteres en la regex del correo electrónico?

Las clases de caracteres de las expresiones regulares de correo electrónico definen un conjunto de caracteres que pueden coincidir con cualquier carácter de la cadena de entrada. Por ejemplo, la clase de caracteres [a-z] coincide con cualquier letra inglesa minúscula. Las clases de caracteres pueden utilizarse para especificar caracteres válidos para distintas partes de una dirección de correo electrónico.

¿Cuáles son las limitaciones de la regex para la validación de correo electrónico?

Aunque el método regex puede detectar muchos errores comunes en las direcciones de correo electrónico, no es un método de validación completo. Algunas direcciones no válidas pueden pasar una comprobación regex, y algunas direcciones válidas pueden fallar, especialmente si utilizan formatos o caracteres menos comunes. Para una validación completa del correo electrónico, a menudo se recomienda utilizar servicios de validación de correo electrónico o enviar un correo electrónico de confirmación a la dirección introducida.

Para una verificación exhaustiva del correo electrónico, opta por Bouncer