sql >> Base de Datos >  >> RDS >> PostgreSQL

Función de Postgres para validar la dirección de correo electrónico

Muchas de estas respuestas están cerca al camino correcto. Estos son los puntos de mi envío.

  • Quieres usar un dominio, NO el sistema de reglas.
  • Usted NO desea validar estas direcciones de correo electrónico con una expresión regular. (Actualización de marzo de 2017:ya no es cierto)

Muestro dos métodos de cómo hacer esto correctamente en DBA.StackExchange.com . Tanto para verificar el registro MX como para usar la especificación HTML5. Aquí está el corto y dulce.

CREATE EXTENSION citext;
CREATE DOMAIN email AS citext
  CHECK ( value ~ '^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$' );

SELECT '[email protected]'::email;
SELECT CAST('[email protected]' AS email);

Para obtener más información, altamente sugiero que lea la respuesta completa . En la respuesta, también muestro cómo crear un DOMAIN sobre Email::Valid y explique por qué ya no uso ese método.