PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Funzione Postgres per convalidare l'indirizzo e-mail

Molte di queste risposte sono vicine nel modo giusto. Questi sono i punti per la mia presentazione.

  • Vuoi utilizzare un dominio -- NON il sistema di regole.
  • Non NON vuoi convalidare questi indirizzi email con una regex. (Aggiornamento marzo 2017:non più vero)

Mostro due metodi per farlo proprio su DBA.StackExchange.com . Sia per controllare il record MX, sia per utilizzare le specifiche HTML5. Ecco il corto e dolce.

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);

Per ulteriori informazioni molto suggerisco di leggere la risposta per intero . Nella risposta, Mostro anche come crei un DOMAIN su Email::Valid e spiega perché non utilizzo più quel metodo.