Un tas de ces réponses sont proches dans le bon sens. Ce sont les points pour ma soumission.
- Vous souhaitez utiliser un domaine -- PAS le système de règles.
- Vous ne souhaitez PAS valider ces adresses e-mail avec une regex. (Mise à jour mars 2017 :plus vraiment vrai)
Je montre deux méthodes pour le faire correctement sur DBA.StackExchange.com . À la fois pour vérifier l'enregistrement MX et également en utilisant la spécification HTML5. Voici le court et doux.
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);
Pour plus d'informations, je fortement vous suggérons de lire la réponse en entier
. Dans la réponse, je montre également comment vous créez un DOMAIN
sur Email::Valid
, et explique pourquoi je n'utilise plus cette méthode.