Няколко от тези отговори са близки към правилния път. Това са точките за моето представяне.
- Искате да използвате домейн -- НЕ системата от правила.
- Вие НЕ искате да потвърждавате тези имейл адреси с регулярен израз. (Актуализация от март 2017 г.:вече не е вярно)
Показвам два метода как да направите това правилно на DBA.StackExchange.com . Както за проверка за MX-запис, така и за използване на спецификацията HTML5. Ето го краткото и сладко.
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);
За повече информация силно предлагам ви да прочетете отговора изцяло
. В отговора показвам също как създавате DOMAIN
през Email::Valid
и обяснете защо вече не използвам този метод.