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.!#$%&''*+/=?^_`{|}~-]example@sqldat.com[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 'example@sqldat.com'::email;
SELECT CAST('example@sqldat.com' 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.