Viele dieser Antworten sind nah auf den richtigen Weg. Dies sind die Punkte für meine Einreichung.
- Sie möchten eine Domain verwenden – NICHT das Regelsystem.
- Sie möchten diese E-Mail-Adressen NICHT mit einem regulären Ausdruck validieren. (Update März 2017:stimmt nicht mehr wirklich)
Ich zeige auf DBA.StackExchange.com zwei Methoden, wie man das richtig macht . Sowohl um nach dem MX-Eintrag zu suchen, als auch anhand der HTML5-Spezifikation. Hier ist es kurz und bündig.
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);
Für weitere Informationen sehr schlagen vor, dass Sie die Antwort vollständig lesen
. In der Antwort zeige ich auch, wie Sie eine DOMAIN erstellen über Email::Valid , und erklären Sie, warum ich diese Methode nicht mehr verwende.