E-Mail & Zustellbarkeit

E-Mail-Validierung: was ein Regex beweist und was nicht

Vier verschiedene Prüfungen werden unter einem Wort verkauft, sie werden der Reihe nach schwerer, und nur die letzte von ihnen stellt fest, was Sie eigentlich wissen wollten. Hier erfahren Sie, was ein Muster beweisen kann, was eine einzige DNS-Abfrage dazugewinnt, warum den Mailserver zu fragen weniger wert ist, als es aussieht, und welche der vier die einzige echte Antwort ist.

  • Fortgeschritten
  • 21 Min. Lesezeit
Ein blauer Umschlag schwebt neben einem grauen Klemmbrett mit einem großen blauen Häkchen, davor eine kleinere graue Karte mit einem schräg gestellten Kreuz

Vier Fragen, die sich ein Wort teilen

„Ist das eine gültige E-Mail-Adresse?“ ist nicht eine Frage, sondern vier. Sie werden der Reihe nach schwerer, und nur die letzte ist die, die irgendjemand wirklich beantwortet haben wollte — weshalb so viel Validierungscode bei der ersten ausführlich ist und zu den übrigen schweigt.

Hier sind sie, in der Reihenfolge, in der ein Anmeldeformular ihnen begegnet.

Ist es wie eine Adresse geformt?
Eine Syntaxprüfung. Sie läuft im Browser, kostet nichts, und erwischt das getippte Komma und das fehlende @. Sie ist die einzige Schicht, die ehrlich etwas ganz allein ablehnen kann — und selbst dann sollte sie weit weniger ablehnen, als es die meisten Muster tun.
Könnte diese Domain überhaupt Mail annehmen?
Eine DNS-Prüfung. Eine einzige Abfrage sagt, ob irgendetwas, irgendwo, bereit ist, Mail für den Teil nach dem @ anzunehmen. Sie erwischt einen Domainnamen mit einem fehlenden Buchstaben und eine Domain, die letztes Jahr abgelaufen ist, und sie kann Ihnen rein gar nichts über das Postfach sagen.
Existiert dieses Postfach?
Eine SMTP-Prüfung — und diejenige, bei der diese Anleitung am längsten erklärt, warum Sie ihr nicht trauen sollten. Man kann fragen. Die Antwort ist oft ein höfliches Ja von einem Server, der jeden Namen akzeptiert, oder ein absichtlicher vorübergehender Fehlschlag, oder eine Annahme, der Minuten später ein Bounce folgt.
Ist es ihre Adresse?
Nichts auf der technischen Seite kann das beantworten. Eine Adresse kann fehlerfrei, zustellbar und trotzdem die eines anderen sein — um eine Ziffer vertippt, oder absichtlich eingetippt, um an Ihnen vorbeizukommen. Nur eine Nachricht, die ankommt und benutzt wird, klärt die Frage.
Das MusterLäuft im BrowserForm der ZeichenketteNichts über die Weltkostet nichtsDie DNS-AbfrageMX, dann ADomain kann empfangenNichts über das Postfacheine AbfrageDie Server-SondeFragt, legt aufFast nichtsCatch-all sagt immer Jalangsam, riskantBestätigte NachrichtEin Link, einmal genutztJemand ist daDie einzige echte Antworteine echte NachrichtJede Zeile kostet mehr als die darüber, und ist mehr wert.
Die vier Schichten, und was jede davon klärt. Nur die unterste Zeile liefert eine Tatsache über die Person; die drei darüber grenzen das Feld nur so weit ein, dass sich die Nachricht lohnt.

Die ersten drei sind billig und beweisen wenig. Die vierte ist die einzige, die den Namen verdient, und sie ist es, die eine Nachricht kostet. Im Folgenden geht es darum, die billigen drei gut einzusetzen, damit die teure nicht verschwendet wird.

Schicht eins: das Muster, und die vier Dinge, die es nicht wissen kann

Es gibt keinen offiziellen regulären Ausdruck für eine E-Mail-Adresse, und es kann auch keinen geben. RFC 5322 definiert eine Grammatik statt eines Musters, und diese Grammatik erlaubt Kommentare in Klammern, gefaltete Leerzeichen und in Anführungszeichen gesetzte Zeichenketten mit fast jedem Zeichen — nichts davon sollte ein echtes Anmeldeformular akzeptieren, und alles davon muss ein originalgetreues Muster tun.

Was es gibt, ist eine bewusst engere Definition, die Browser bereits umsetzen: die, die die HTML-Spezifikation für ein Feld <input type="email"> vorgibt. Sie ist ein gewollter Kompromiss statt einer Abschrift des Standards, Ihr Formular wird schon daran gemessen, bevor auch nur eine Zeile Ihres Codes läuft, und sie ist kurz genug, um sie auf einen Blick zu lesen:

regex
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[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])?)*$/

Verwenden Sie das, oder das, was Ihre Plattform schon mitbringt. Alle vier unten sind dieselbe Schicht, und welche Sie wählen, ist eine kleinere Entscheidung als das, was Sie danach tun:

Wo Sie sindDie Prüfung, die Sie schon habenWas sie tut, das Sie vielleicht nicht erwarten
Im Browser, ganz ohne Code<input type="email" required>Wendet das Muster von oben an, bevor Ihr JavaScript das Feld überhaupt zu Gesicht bekommt, und zeigt die Meldung in der Sprache des Besuchers.
In PHP, ohne Installationfilter_var($a, FILTER_VALIDATE_EMAIL)Strenger als das HTML-Muster: Es besteht auf einem Punkt in der Domain und weist deshalb eine Adresse zurück, die nur innerhalb einer einzigen Maschine funktionieren würde.
In Python, mit einem kleinen Paketemail_validator.validate_email(a)Erledigt die Syntax und, wenn Sie es zulassen, die Domain-Abfrage aus Schicht zwei — die beiden billigen Schichten hinter einem einzigen Aufruf.
In Java oder Kotlin, über Bean Validation@EmailAbsichtlich sehr großzügig. Es ist eine Annotation, die das offensichtlich Falsche abfangen soll, und sie akzeptiert bereitwillig eine Domain, die es nie gegeben hat.

Welches davon Sie auch verwenden — entscheidend ist, wozu es schweigt. Ein Muster, das „wahr“ zurückgibt, hat Ihnen eine Sache gesagt und über vier andere geschwiegen.

Nicht, dass die Domain existiert
Eine Adresse auf einer Domain, die nie jemand registriert hat, besteht jedes Muster in diesem Abschnitt. Nachgeschlagen wurde nichts, und kontaktiert wurde niemand; noch nie hat ein regulärer Ausdruck eine Netzwerkanfrage gestellt.
Nicht, dass das Postfach existiert
Selbst bei einer echten Domain hat das Muster keine Meinung zum Teil vor dem @. Dieser Teil gehört allein dem empfangenden Server, und genau das ist es, was DNS Ihnen nie sagen wird.
Nicht, dass sie zustellbar ist
Eine Domain kann einen fehlerfreien Eintrag haben und trotzdem einen Mailserver, der seit einem Monat abgeschaltet ist. Syntax ist eine Eigenschaft einer Zeichenkette; Zustellbarkeit ist eine Eigenschaft der Welt in dem Moment, in dem Sie auf Senden drücken.
Nicht, dass sie der Person gehört, die sie eintippt
Die häufigste schlechte Adresse in jeder Datenbank ist eine echte, zustellbare, die jemandem gehört, der sich nie angemeldet hat — weil ein Buchstabe vertippt wurde, oder weil das Formular mit einer plausibel aussehenden Lüge ausgefüllt wurde.

Schicht zwei: eine Abfrage, und was sie klärt

Der Teil nach dem @ ist eine Domain, und eine Domain hat entweder einen Ort, an den Mail kann, oder sie hat keinen. Eine einzige DNS-Abfrage beantwortet das in wenigen Millisekunden, und sie ist die wertvollste Prüfung in dieser gesamten Anleitung — weil der Fehler, den sie erwischt, ein leicht falsch getippter Domainname, mit Abstand der häufigste echte Fehlschlag überhaupt ist.

shell
$ dig +short MX example.com

Eine Antwort bedeutet, dass ein Host benannt wurde. Keine Antwort bedeutet nicht keine Mail: Eine Domain ohne MX-Eintrag, aber mit einem A-Eintrag, empfängt trotzdem, weil Absender darauf ausweichen. Es gibt vier mögliche Ergebnisse, und nur zwei davon sind Fehlschläge.

Was die Abfrage zurückgibtKann sie empfangen?Was das Formular tun sollte
Ein oder mehrere MX-EinträgeJaAkzeptieren. Das ist die überwältigende Mehrheit der Adressen, und vor dem Senden lohnt sich nichts weiter.
Kein MX, aber ein A- oder AAAA-EintragJa, per RückfallAkzeptieren. Das ist ungewöhnlich und völlig legal, und Absender werden dorthin zustellen. Sie abzulehnen macht aus einer funktionierenden Adresse einen verlorenen Kunden.
Ein einzelner Eintrag, dessen gesamter Wert 0 . lautetNein, und zwar absichtlichAblehnen, und sagen, warum. Das ist ein Null-MX: Der Inhaber der Domain hat auf die eine Art, wie man das veröffentlichen kann, bekanntgegeben, dass hier nichts Mail annimmt.
Die Domain löst sich überhaupt nicht aufNeinAblehnen, und das nächstliegende Angebot machen. NXDOMAIN bei einem Namen, den ein Mensch vor dreißig Sekunden eingetippt hat, ist fast immer ein einziger falscher Buchstabe.

Wo diese Prüfung schiefgeht, ist nie die Abfrage selbst. Es ist, wohin die Abfrage gesetzt wurde — auf den kritischen Pfad, pro Tastenanschlag, mit einem Fehlschlag, der das Absenden blockiert. Sechs Regeln halten sie nützlich:

  1. Führen Sie sie aus, wenn das Feld fertig ausgefüllt ist, nicht während des Tippens. Eine Abfrage, wenn der Fokus das Feld verlässt, oder eine beim Absenden. Eine Abfrage pro Tastenanschlag ist eine Abfrage pro Tastenanschlag.
  2. Schreiben Sie die Domain zuerst klein. DNS ist das egal, Ihrem Cache nicht: Zwei Schreibweisen derselben Domain sind eine Abfrage, nicht zwei.
  3. Fragen Sie nach MX, und weichen Sie auf A aus. Zwei Abfragen, von denen nur die zweite bedingt ist. Eine Bibliothek, die nur MX prüft, wird funktionierende Domains ablehnen.
  4. Speichern Sie die Antwort für ein paar Minuten im Cache. Eine Handvoll Domains macht überall die meisten Anmeldungen aus, sodass aus den meisten Abfragen gar keine Abfrage mehr wird.
  5. Im Zweifel akzeptieren. Läuft der Resolver in ein Timeout, akzeptieren Sie die Adresse. Eine schlechte Minute bei Ihrem DNS-Anbieter darf nie zu einem Formular werden, das alle abweist.
  6. Schlagen Sie eine Korrektur vor; nehmen Sie sie nie selbst vor. Ist die Domain einen Buchstaben von einer gängigen entfernt, bieten Sie die Korrektur zum Anklicken an. Stillschweigend umzuschreiben, was jemand eingetippt hat, ist der Weg, auf dem ein Bestätigungslink bei einem Fremden landet.

Die Abfrage hat einen Preis, den man kennen sollte: Sie ist der erste Moment, in dem Ihr Formular mit der Außenwelt über etwas spricht, das ein Besucher eingetippt hat. Wo das eine Rolle spielt, besteht die Alternative darin, diese Schicht ganz zu überspringen und die Nachricht selbst die ganze Prüfung sein zu lassen.

Schicht drei: den Server fragen, und warum die Antwort keine ist

Es gibt eine Möglichkeit, einen Mailserver zu fragen, ob er eine bestimmte Adresse annehmen würde, ohne ihr etwas zu senden. Die Verbindung öffnen, einen Absender nennen, den Empfänger nennen, die Antwort auf genau diesen einen Befehl lesen und vor der Nachricht auflegen:

smtp
220 mx1.example.com ESMTP ready
EHLO checker.example.net
250 mx1.example.com
MAIL FROM:<probe@example.net>
250 2.1.0 Ok
RCPT TO:<someone@example.com>
250 2.1.5 Ok
QUIT
221 2.0.0 Bye

Die 250 nach RCPT TO ist es, was letztlich jeder Adressverifizierungsdienst der Welt verkauft. Es lohnt sich, genau zu sein, wie wenig sie wert ist.

Eine Catch-all-Domain sagt zu allem Ja
Eine Domain, die so eingerichtet ist, dass sie jeden Namen akzeptiert — was dieser Dienst tut, und was sehr viele Firmendomains auch tun —, antwortet mit 250 auf eine Adresse, die nie jemand benutzt hat. Die Antwort stimmt, und sie ist keine Information.
Ein sorgfältiger Server sagt absichtlich 450
Greylisting weist den ersten Versuch eines unbekannten Absenders zurück und bittet ihn, es bald wieder zu versuchen. Ein echter Absender tut das; eine Sonde nie. Dieser vorübergehende Fehlschlag ist eine absichtliche Nicht-Antwort, und ihn als „kein solches Postfach“ zu lesen, ist genau der Fehler, den er erzeugen soll.
Manche Server nehmen erst an und lehnen danach ab
Große Anbieter nehmen die Nachricht während der Konversation routinemäßig an und entscheiden erst später über sie, wodurch aus einer Ablehnung ein Bounce wird, der erst Minuten eintrifft, nachdem Ihre Sonde sauber zurückgekommen ist.
Manche Server sagen zu allen Nein, die sie nicht kennen
Ein Server, der entschieden hat, dass Ihre Adresse ein Fremder ist, kann den Empfänger aus Gründen ablehnen, die nichts mit dem Empfänger zu tun haben. Gemessen haben Sie Ihren eigenen Ruf, nicht dessen Postfach.
Und sie verbraucht den Ruf, den Sie eigentlich schützen wollten
Eine Verbindung, die Empfänger nennt und nie etwas sendet, hat genau die Form eines Adress-Harvestings, weil sie eines ist. Das in großem Umfang von der eigenen Adresse aus zu tun, ist der schnellste Weg auf eine Sperrliste — und ein gesperrter Absender ist einer, dessen echte Nachrichten nicht mehr ankommen.

Es gibt einen einzigen engen Fall, in dem die Sonde wirklich nützlich ist: eine einzelne Adresse, von Hand geprüft, auf einer Domain, die Sie selbst betreiben oder anfassen dürfen. Als Schritt innerhalb eines Anmeldeformulars ist sie langsam, häufig falsch, und gelegentlich schädlich für genau das, was sie eigentlich schützen sollte.

Rollenadressen, Wegwerf-Domains und die Liste, die Sie gleich kaufen

Zwischen der Domain-Abfrage und der echten Nachricht sitzt eine Familie von Prüfungen, bei denen es überhaupt nicht um Gültigkeit geht. Es geht darum, ob Sie diese Adresse wollen — eine geschäftliche Entscheidung im technischen Kostüm —, und allein deshalb lohnt es sich, sie von den drei Schichten drumherum zu trennen.

Rollenadressen
Namen wie info@, support@ und admin@. Sie sind echt, und meist ein gemeinsam genutztes Postfach statt einer Person, was sie zu einem schlechten Zuhause für alles macht, wofür ein Passwort dahintersteckt. Es lohnt sich, sie zu markieren. Selten lohnt es sich, sie abzulehnen.
Wegwerf-Domains
Adressen wie die, die diese Seite ausgibt, auf Domains, die existieren, um weggeworfen zu werden. Sie gegen eine öffentliche Liste davon zu prüfen, ist fair genug, solange Sie ehrlich damit sind, dass jede solche Liste unvollständig und schon an dem Tag, an dem Sie sie herunterladen, leicht veraltet ist.
Freemailer-Adressen
Manche Geschäftsformulare weisen alles zurück, was keine Firmendomain ist. Das ist eine Richtlinie, manchmal die richtige, und sie verdient es, als Richtlinie geschrieben zu werden — ein Satz, den der Besucher lesen kann — statt in etwas versteckt zu werden, das sich Validierung nennt.
Beinahe-Treffer bekannter Domains
Der Name eines bekannten Anbieters mit einem falschen Buchstaben. Dieser Fall ist anders als die anderen drei: Er ist keine Richtlinie, er erwischt einen echten Fehler, und die Person ist immer froh darüber. Es ist der einzige Eintrag hier, den zu bauen sich lohnt.

Die ersten drei teilen eine Eigenschaft, die sie schwer zu beurteilen macht: Sie können messen, was sie durchlassen, und Sie können nicht messen, was sie kosten.

Wir haben hier ein offensichtliches Eigeninteresse, also hier die ehrliche Version. Steckt hinter Ihrem Formular eine kostenlose Testphase mit etwas Teurem dahinter, spart Ihnen das Ablehnen von Wegwerf-Domains Geld, und Sie sollten es tun. Ist es ein Newsletter, ein Download oder ein Konto, für das jemand bezahlt, besteuern Sie damit vor allem die Vorsichtigen — und die Vorsichtigen sind die, die lesen, was Sie verschicken.

Schicht vier: die Nachricht, die die Prüfung ist

Alles oben grenzt das Feld nur ein. Nichts davon stellt die einzige Tatsache fest, auf die es ankommt — dass diese Adresse die Person vor Ihnen erreicht —, und genau eine Sache tut das: etwas dorthin senden und zusehen, ob es benutzt wird.

Das ist die Schleife, die fast jede Anmeldung schon hat und die die Hälfte von ihnen als Formsache behandelt:

  1. Akzeptieren Sie die Adresse nach einer einzigen großzügigen Prüfung. Das Muster im Browser, und sonst nichts, was zwischen dem Besucher und dem Knopf steht.
  2. Legen Sie das Konto unbestätigt an. Kein Halt im Formular, kein Bildschirm mit „ausstehend“: Die Person ist drin, und was sie noch nicht kann, ist die Handvoll Dinge, für die die Adresse tatsächlich gebraucht wird.
  3. Senden Sie eine Nachricht mit einem Einmal-Link oder -Code. Eine einzige, mit Ablaufdatum, gebunden an genau dieses Konto und genau diese Adresse und keine andere.
  4. Lassen Sie den Link der Beweis sein. Ein Klick, oder ein zurückgetippter Code, ist die gesamte Verifizierung. Nichts sonst in dieser Anleitung liefert eine auch nur annähernd so solide Antwort.
  5. Geben Sie ihnen einen Weg zurück. Ein sichtbares „Erneut senden“, und eine Möglichkeit, die Adresse zu ändern, ohne das Konto zu verlieren — denn der häufigste Grund, warum ein Link nie angeklickt wird, ist ein Tippfehler, den die Person jetzt endlich sehen kann.
  6. Lassen Sie die unbestätigten ablaufen. Ein stiller Aufräumdurchgang nach einer festen Frist verhindert, dass sich Tippfehler und Wegwerf-Adressen zu einer Liste anhäufen, der niemand traut.

Das schafft ein praktisches Problem, und es ist der Grund, warum diese Seite existiert. Diese Schleife ist inzwischen der wichtigste Pfad im Produkt, und sie zu testen bedeutet, immer wieder echte Mail an einer Adresse zu empfangen, die Sie kontrollieren — innerhalb einer Pipeline, ohne dass ein Mensch ein Postfach öffnet.

Eine Adresse auf einer der öffentlichen Domains braucht keine Anmeldung und keinen Schlüssel, und was dort ankommt, ist eine Sekunde später über HTTP lesbar:

shell
$ curl -sG https://grabmail.io/api/v1/mailbox \
  --data-urlencode "address=signup-42@grabmail.io"

Von dort aus kann eine Testsuite einen ganzen Verifizierungsablauf von Anfang bis Ende steuern, oder eine eigene Domain kann hierher zeigen, sodass jeder Lauf eine Adresse bekommt, die es nie zuvor gegeben hat. Nachrichten werden 5 Tage aufbewahrt und dann gelöscht, was die richtige Lebensdauer für eine Testfixture ist und die falsche für ein Postfach.

Was tatsächlich ins Formular gehört

Verdichtet, in der Reihenfolge, in der der Code läuft:

  1. Trimmen, und nur trimmen. Leerraum an beiden Enden ist ein Artefakt des Einfügens und nie beabsichtigt. Sonst steht es Ihnen nicht zu, an der Zeichenkette etwas zu ändern.
  2. Gegen ein großzügiges Muster prüfen. Das des Browsers, oder das Ihrer Plattform. Weisen Sie das fehlende @ und das getippte Komma zurück, und sonst nichts.
  3. Die Länge bei 254 deckeln. Eine Zahl, in der Spalte und im Feld, und eine ganze Klasse von Eingaben, über die Sie nicht mehr nachdenken müssen.
  4. Die Domain abfragen, abseits des kritischen Pfads, im Zweifel akzeptierend. MX und dann A, gecacht, und nie ein Grund, ein Absenden zu blockieren, das sonst funktioniert hätte.
  5. Eine Korrektur anbieten, keine vornehmen. Ein Buchstabe von einer gängigen Domain entfernt ist eine Frage, die man stellt, kein Befund, nach dem man handelt.
  6. Die Nachricht senden. Das ist die Validierung. Alles davor war Triage.
  7. Sagen Sie in Worten, was falsch ist. Das ist der Teil, der entscheidet, ob überhaupt jemand fertig wird:
Was passiert istWas Formulare meist sagenWas man stattdessen sagen sollte
Die Zeichenkette enthält kein @„Bitte geben Sie eine gültige E-Mail-Adresse ein“„Eine E-Mail-Adresse braucht ein @ — meinten Sie name@example.com?“
Die Domain löst sich nicht auf„Bitte geben Sie eine gültige E-Mail-Adresse ein“„Wir können diese Domain nicht finden. Stimmt die Schreibweise?“
Die Domain ist einen Buchstaben von einer gängigen entferntGar nichts; das Formular wird abgeschickt„Meinten Sie … ?“, mit der korrigierten Adresse als anklickbarer Knopf
Sie steht auf einer Sperrliste, die Sie sich ausgesucht haben„Bitte geben Sie eine gültige E-Mail-Adresse ein“„Dafür brauchen wir eine Adresse, die Sie auch nächsten Monat noch lesen können.“
Die Nachricht ging raus und wurde nie bestätigtGar nichts; das Konto bleibt einfach so stehen„Wir haben einen Link an diese Adresse geschickt. Nicht angekommen? Erneut senden, oder Adresse ändern.“

Achten Sie darauf, wie viele Zeilen dasselbe Falsche sagen. „Bitte geben Sie eine gültige E-Mail-Adresse ein“ ist überall die Standardmeldung, weil sie für jeden Fall stimmt und in keinem davon nützlich ist: In drei von fünf Zeilen war die Adresse gültig, und die Person, die sie eingetippt hat, hat keine Möglichkeit herauszufinden, in welcher Zeile sie steckt.

Die Kurzversion

  1. Trimmen Sie die Zeichenkette. Ändern Sie sonst nichts daran.
  2. Prüfen Sie gegen ein großzügiges Muster — das des Browsers oder das Ihrer Plattform — und lassen Sie es dabei. Schreiben Sie kein eigenes.
  3. Weisen Sie alles über 254 Zeichen zurück, und legen Sie eine Spalte dieser Größe an.
  4. Fragen Sie MX für die Domain ab, weichen Sie auf A aus, cachen Sie das Ergebnis, tun Sie es abseits des kritischen Pfads, und akzeptieren Sie die Adresse, wenn die Abfrage fehlschlägt.
  5. Lehnen Sie eine Domain ab, die sich nicht auflöst, und eine Domain, die einen Null-MX veröffentlicht. Akzeptieren Sie alles andere, was DNS Ihnen liefert.
  6. Bieten Sie einen Rechtschreibvorschlag an, wenn die Domain ein Beinahe-Treffer ist. Wenden Sie ihn nie selbst an.
  7. Entscheiden Sie getrennt, und schriftlich, ob Sie Wegwerf- oder Rollenadressen blockieren — und warum.
  8. Senden Sie eine Nachricht mit einem Einmal-Link, behandeln Sie den Klick als die Verifizierung, und machen Sie das erneute Senden und das Korrigieren der Adresse leicht.
  9. Testen Sie diese Schleife gegen ein echtes Postfach, einschließlich der Pfade, auf denen sie fehlschlägt, und löschen Sie unbestätigte Konten nach einem festen Zeitplan.

Neun Zeilen, und nur die letzten beiden stellen überhaupt etwas fest. Die anderen sieben existieren, damit sich die Nachricht am Ende von ihnen lohnt.

Fragen

Gibt es einen offiziellen regulären Ausdruck für E-Mail-Adressen?

Nein, und es kann auch keinen geben. RFC 5322 gibt eine Grammatik vor, kein Muster, und ein ihr treues Muster würde zitierte Leerzeichen und geklammerte Kommentare akzeptieren, die kein Anbieter je ausgibt. Verwenden Sie das, was die HTML-Spezifikation für ein E-Mail-Feld definiert, oder welchen Prüfer auch immer Ihre Plattform schon mitbringt, und stecken Sie den gesparten Aufwand in die Bestätigungsnachricht.

Kann ich prüfen, ob eine E-Mail-Adresse existiert, ohne etwas zu senden?

Sie können fragen; Sie können es nicht wissen. Eine Catch-all-Domain akzeptiert jeden Namen, Greylisting antwortet mit einem absichtlichen vorübergehenden Fehlschlag, große Anbieter nehmen während der Konversation an und schicken danach einen Bounce, und ein Server, der Sie nicht kennt, lehnt vielleicht aus Gründen ab, die an Ihnen liegen und nicht am Empfänger. Massenhaftes Sondieren bringt außerdem Ihre Absendeadresse auf Sperrlisten.

Ist name+tag@example.com eine gültige Adresse?

Ja. Das Pluszeichen ist ein gewöhnliches, erlaubtes Zeichen im lokalen Teil, und bei den meisten großen Anbietern führt es außerdem zum Postfach davor, was Plus-Adressierung nützlich macht. Ein Formular, das es ablehnt, weist legale Adressen zurück und verrät dabei etwas über sich selbst.

Wird bei E-Mail-Adressen zwischen Groß- und Kleinschreibung unterschieden?

Bei der Domain nie. Der Teil vor dem @ wird laut Standard dem empfangenden Server überlassen — und in der Praxis ignoriert jeder große Anbieter die Schreibweise. Behalten Sie eine kleingeschriebene Kopie, um Duplikate zu erkennen, und senden Sie an die Zeichenkette genau so, wie sie eingetippt wurde.

Wie lang darf eine E-Mail-Adresse sein?

64 Zeichen vor dem @, 255 für die Domain, und 254 für die gesamte Adresse, so wie ein Server sie transportiert. Die letzte dieser drei Zahlen ist die, die Sie verwenden sollten: Tragen Sie sie in die Datenbankspalte und in das Feld ein, und eine ganze Klasse von Eingaben hört auf, Ihr Problem zu sein.

Sollte ich Wegwerf-E-Mail-Adressen blockieren?

Wenn hinter einer kostenlosen Testphase etwas Teures steckt, ja — und akzeptieren Sie, dass jede Liste, die Sie verwenden, unvollständig ist. Bei einem Newsletter, einem Download oder einem bezahlten Konto sind die Menschen, die Sie abweisen, meist die Vorsichtigen, und Sie werden sie nie in einem Protokoll sehen. Der vollständige Kompromiss lohnt sich zu lesen, bevor Sie ein Paket installieren, das die Entscheidung für Sie trifft.

Wie teste ich einen Anmeldebestätigungsablauf ohne echtes Postfach?

Senden Sie an eine Adresse auf einer öffentlichen Wegwerf-Domain und lesen Sie sie über die API zurück — keine Anmeldung, kein Schlüssel, und für jeden Lauf eine frische Adresse. Für eine Suite, die Hunderte braucht, richten Sie eine eigene Domain auf ein Catch-all-Postfach aus und erfinden Sie pro Test eine Adresse. Die vollständige Anleitung steht unter einen E-Mail-Verifizierungsablauf von Anfang bis Ende testen.

Weiterlesen

Probieren Sie es aus, solange es frisch ist

Eine Adresse braucht einen Klick, kein Konto und keine Karte. Alles in dieser Anleitung funktioniert damit sofort.

Willkommen zurück

Ihre Postfächer und Ihre Domains an einem Ort.