PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Função Postgres para validar o endereço de e-mail


Várias dessas respostas estão próximas para o caminho certo. Estes são os pontos para minha submissão.
  • Você deseja usar um domínio -- NÃO o sistema de regras.
  • Você NÃO deseja validar esses endereços de e-mail com um regex. (Atualização de março de 2017:não é mais verdade)

Eu mostro dois métodos de como fazer isso direito em DBA.StackExchange.com . Ambos para verificar o registro MX e também usando a especificação HTML5. Aqui está o curto e doce.
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 mais informações eu altamente sugiro que você leia a resposta na íntegra . Na resposta, também mostro como você cria um DOMAIN sobre Email::Valid , e explique por que não uso mais esse método.