Ein Werkzeug zum Erzeugen temporärer Adressen legt ein kurzlebiges Postfach mit funktionsfähiger Adresse an, sodass ein Anmeldeformular, ein Ablauf zum Zurücksetzen des Passworts oder die Zustellung eines Einmalcodes wirklich von Anfang bis Ende ausgeübt werden kann, statt nur nachgebildet zu werden. Das Postfach nimmt echte Post an, hält sie eine Weile und verschwindet dann – genau diese Eigenschaft macht es im Test nützlich und als dauerhafter Kontakt unbrauchbar.
Dieser Leitfaden trennt die drei Dinge, die gemeint sind, wenn von temporärer E-Mail die Rede ist, erklärt, was ein Wegwerf-Postfach leistet, das ein Stub nicht leisten kann, warum so viele Dienste diese Domains ablehnen und wann Sie besser gar nicht danach greifen. Am Ende sollten Sie zwischen einer öffentlichen Wegwerf-Domain, einer Weiterleitungsadresse und einem Catch-all-Postfach auf Ihrer eigenen Domain entscheiden können, ohne zu raten; der Mailbereich dieser Site ist der praktische Begleiter zu dieser Entscheidung.
Was ist ein Wegwerf-Postfach?
Ein Wegwerf-Postfach ist ein Postfach, das für einen kurzen Zeitraum existiert und ohne jede Anmeldung angelegt werden kann. Es hat eine Adresse, es kann Post empfangen, und es hat ein Ablaufdatum. Alles Weitere unterscheidet sich von Anbieter zu Anbieter: wie lange die Aufbewahrung dauert, ob die Adresse erratbar ist, ob das Postfach öffentlich einsehbar ist und ob Anhänge gespeichert werden.
Die Adresse liegt üblicherweise auf einer geteilten Domain. Das ist der wichtige strukturelle Umstand, denn er bedeutet, dass Tausende einander unbekannter Personen dieselbe Domain gleichzeitig nutzen und dass der Ruf der Domain unter allen aufgeteilt wird. Missbraucht eine Person diese Domain, erben alle anderen die Folge in Form eines Eintrags auf irgendeiner Sperrliste. Nichts am Postfach selbst verrät Ihnen, welche Fremden die Domain in dieser Woche verwendet haben, und nichts, was Sie in Ihrem eigenen Test tun, verbessert die Ausgangslage, die Sie von ihnen übernehmen.
Das Postfach ist keine Weiterleitungsadresse, und diese Unterscheidung wird am häufigsten verwischt. Eine Alias-Adresse gehört zu einer Domain, die Sie kontrollieren, und leitet an ein Postfach weiter, das Sie bereits besitzen; das zugrunde liegende Postfach ist also dauerhaft, und die Alias-Adresse ist nur ein Zeiger darauf. Ein Wegwerf-Postfach ist das Postfach selbst, und dahinter steht nichts mehr, sobald es abläuft.
Auch der Begriff der Öffentlichkeit gehört hierher. Manche Anbieter zeigen den Inhalt eines Postfachs jedem, der dieselbe Adresse aufruft. Für einen schnellen manuellen Blick ist das bequem, für einen automatisierten Lauf mit echten Zwischenergebnissen ist es ein Datenabfluss, den Sie weder steuern noch protokollieren können.
Wie unterscheiden sich temporäre Postfächer von Alias-Adressen und Catch-all-Domains?
Eine Weiterleitungsadresse ist eine stabile Identität mit bewusster Lebensdauer. Sie legen sie einmal an, richten sie auf ein echtes Postfach aus und verwenden sie überall dort, wo ein Dienst nach einer E-Mail-Adresse fragt. Die Post kommt in Ihrem eigenen Konto an, die Alias-Adresse lässt sich später abschalten, und weil die Domain Ihnen gehört, ist die Zustellbarkeit dieses Alias Ihr eigener Ruf und nicht der eines Fremden.
Eine Catch-all-Domain ist die industrielle Variante desselben Gedankens. Jede Adresse auf der Domain – nicht nur die von Ihnen angelegten – wird angenommen und an ein Postfach oder ein Verarbeitungsskript geleitet. Dadurch lässt sich pro Testlauf ohne jeden Einrichtungsschritt eine frische Adresse bilden, weil die Adresse in dem Moment gültig ist, in dem sie erfunden wird. Der Beitrag zum Catch-all-Postfach für Staging behandelt die Betriebsdetails und die Spam-Exposition, die damit einhergeht.
Ein öffentliches Wegwerf-Postfach steht am anderen Ende des Kompromisses. Es kostet nichts und verlangt keine DNS-Einträge, und im Gegenzug teilt es eine Domain mit allen anderen, hat ein Aufbewahrungsfenster, das Sie nicht gewählt haben, und kann von genau dem Dienst blockiert werden, den Sie testen. Für eine schnelle manuelle Prüfung ist es bequem. Für eine nächtliche Pipeline ist es eine Quelle zeitweise auftretender Fehler, die sich schwer zuordnen lassen.
Die Wahl ist damit keine Geschmacksfrage, sondern eine Frage der Wiederholbarkeit. Alles, was Ihre Domain ist, können Sie reparieren. Alles, was eine fremde Domain ist, können Sie nur beobachten.
Was löst ein Wegwerf-Postfach in der Verifizierungsprüfung?
Das Problem, das es löst, ist eng umrissen: ein Ablauf, der einen Link oder einen Code an eine Adresse schickt und dann darauf wartet, dass jemand damit etwas tut. Ein nachgebildeter Mailversand kann bestätigen, dass eine Nachricht eingereiht wurde. Er kann nicht bestätigen, dass der Link in der Nachricht funktioniert, dass der Code in der Nachricht angenommen wird oder dass das Token im Link zu dem Zeitpunkt abläuft, zu dem es ablaufen soll.
Ein echtes Postfach schließt diese Lücke. Der Test registriert sich mit einer erzeugten Adresse, wartet auf die Nachricht, entnimmt den Link oder den Code, folgt ihm und prüft das Ergebnis. Das ist die einzige Form von Test, die den Zustellweg tatsächlich abdeckt, und sie ist der Grund, warum Wegwerf-Postfächer überhaupt in einem Testwerkzeugkasten liegen. Der Beitrag zur Prüfung von E-Mail-Verifizierungsabläufen führt die ausführlichere Fassung dieser Abfolge durch.
Ein zweiter, leiserer Nutzen kommt hinzu. Ein echtes Postfach zeigt die Nachricht so, wie der Empfänger sie sieht – einschließlich der Darstellung, des Absendernamens, der Betreffzeile und der Reihenfolge der Teile. Vorlagenfehler, die ein Stub nie zeigt, etwa eine fehlende Variable, ein defekter Link oder eine Betreffzeile, die leer ankommt, treten sofort zutage, sobald ein Mensch oder ein Parser die tatsächliche Nachricht liest. Der Beitrag zur Checkliste für Transaktions-E-Mails erweitert denselben Gedanken auf die Nachrichten nach dem Kauf, die kein Anmeldeablauf ausübt.
Ein dritter Punkt wird oft übersehen: Die Wartezeit ist selbst ein Prüfgegenstand. Ein Ablauf, der die Nachricht in zwei Sekunden erwartet, obwohl die Zustellung in der Testumgebung zwanzig braucht, erzeugt Fehlschläge, die nichts über die Software aussagen. Messen Sie die übliche Zustellzeit und setzen Sie die Wartezeit deutlich darüber an.
Warum blockieren so viele Dienste Wegwerf-Domains?
Die Sperre arbeitet mit einer veröffentlichten Liste. Anbieter verkaufen oder verschenken Listen von Domains, die mit temporärer Post in Verbindung gebracht werden, und ein Anmeldeformular prüft die eingereichte Adresse zuerst gegen diese Liste. Die Prüfung ist billig, sie verlangt keine Verifizierung des Nutzers und sie stoppt einen großen Teil automatisierten Missbrauchs.
Die Folge für das Testen ist, dass die Sperrliste Teil der Umgebung ist, in der Ihr Test läuft, und dass sie nicht Ihrer Kontrolle unterliegt. Eine Domain, die heute funktioniert, kann morgen auf einer Liste erscheinen, und Ihre Pipeline beginnt zu scheitern, ohne dass sich auf Ihrer Seite etwas geändert hätte. Das ist die häufigste Ursache zeitweise auftretender Verifizierungsfehler in automatisierten Suiten und Gegenstand des Beitrags dazu, warum Sites Wegwerf-Domains blockieren.
Schlimmer noch, der Fehlschlag ist oft nichtssagend. Das Formular gibt eine allgemeine Fehlermeldung zurück, der Test meldet eine Zeitüberschreitung beim Warten auf eine Nachricht, und die eigentliche Ursache – die Anmeldung wurde abgewiesen, bevor überhaupt Post versandt wurde – liegt mehrere Schichten vom Symptom entfernt. Eine Suite, die öffentliche geteilte Domains verwendet, ist deshalb eine Suite mit einem dauerhaften, unerklärten Budget für Zufallsfehler. Die Abhilfe besteht darin, die eingereichte Adresse und die Rohantwort des Formulars zu protokollieren, sobald ein Warten auf Zustellung abläuft, damit die nächste Person, die den Fehler sieht, sofort die beiden Fakten zur Hand hat, die ihn identifizieren.
Viele Anbieter begrenzen außerdem die Rate pro Domain oder pro Adresspräfix, was eine zweite Form zeitweiser Fehler einführt. Eine Pipeline, die in wenigen Minuten hunderte Postfächer anlegt, kann erleben, dass der Anbieter Anfragen ablehnt; erneut erscheint das Symptom als fehlende Nachricht und nicht als abgewiesene Anfrage.
Wie sollte eine Testsuite ihren Mailweg entwerfen?
Entwerfen Sie den Mailweg um eine Domain, die Sie kontrollieren. Richten Sie ein Catch-all auf ein Postfach oder ein Verarbeitungsskript aus und bilden Sie für jeden Lauf eine frische Adresse, indem Sie ein eindeutiges Merkmal mit der Domain verbinden. Nichts muss eingerichtet werden, die Zustellbarkeit liegt in Ihrer Verantwortung, und keine Liste eines Dritten entscheidet darüber, ob Ihre Pipeline besteht.
Lesen Sie die Nachricht programmatisch und nicht mit dem Auge. Ein Parser, der den ersten Link oder den ersten mehrstelligen Code aus dem Nachrichtenkörper zieht, macht die Zusicherung deterministisch; eine deterministische Zusicherung ist der Unterschied zwischen einem Test und einer Vorführung. Der Beitrag zu Einmalcodes in End-to-End-Tests behandelt die Entnahmeregeln, die Vorlagenänderungen überstehen.
Für Tests auf Einheitenebene überspringen Sie die Zustellung ganz. Ein lokaler Auffangserver nimmt die Nachricht entgegen, statt sie zu versenden; das hält den Test schnell und nimmt das Netzwerk aus der Schleife. Der Beitrag zur lokalen SMTP-Abfangung in der CI erklärt, warum das für die meisten Suiten die richtige Voreinstellung ist und echte Zustellung den wenigen Tests vorbehalten bleibt, die sie tatsächlich brauchen.
Halten Sie die Adressen erkennbar. Ein Präfix, das Umgebung und Lauf benennt, gefolgt von der Domain, die Ihnen gehört, macht es möglich, eine empfangene Nachricht zu dem Test zurückzuverfolgen, der sie erzeugt hat, und die nicht mehr benötigten zu löschen. Ohne Präfix wird ein geteiltes Catch-all-Postfach zu einem Haufen von Nachrichten, die niemand zuordnen kann, und ein nicht zuordenbares Postfach ist eines, das niemand zu leeren wagt.
Notieren Sie zuletzt die Aufbewahrung in derselben Datei wie die Wartezeit. Beide Werte gehören zusammen, und beide ändern sich, wenn ein Anbieter seine Voreinstellungen anpasst.
Wann sollten Sie temporäre E-Mail nicht verwenden?
Es gibt Fälle, in denen ein Wegwerf-Postfach das falsche Werkzeug ist, und sie verdienen es, benannt zu werden, weil man leicht in sie hineinläuft. Der erste ist alles, was ein echtes Konto betrifft, auf das es ankommt. Einen Dienst, von dem Sie tatsächlich abhängen, mit einem Postfach zu registrieren, das in einer Stunde abläuft, erzeugt ein Konto, das Sie nicht wiederherstellen können; keine Bequemlichkeit rechtfertigt das.
Der zweite ist ein Ablauf, der den Umgang mit Produktionsdaten verlangt. Ein Postfach außerhalb Ihrer Organisation liegt außerhalb Ihrer Aufbewahrungsrichtlinie und außerhalb Ihrer Prüfspur; jede Nachricht mit echten Kundendaten darf deshalb niemals durch eines laufen. Aufsichtsrechtliche Vorgaben behandeln das als Offenlegung und nicht als Testabkürzung, und keine Bequemlichkeit während eines Sprints rechtfertigt es. Braucht ein Test tatsächlich die Gestalt einer Produktionsnachricht, bilden Sie diese Gestalt mit synthetischen Werten nach, statt die echte Nachricht durch ein fremdes Postfach zu leiten.
Der dritte Fall ist alles, was dazu dient, eine Grenze zu umgehen. Eine Wegwerf-Adresse ist kein Mittel, um wiederholt kostenlose Testphasen eines Dienstes zu erhalten; eine solche Verwendung verstößt gegen die Nutzungsbedingungen und liefert zugleich ein irreführendes Bild davon, wie sich das Produkt für einen normalen Nutzer verhält. Die ehrliche Einordnung lautet, dass das Werkzeug für das Testen Ihrer eigenen Systeme existiert und nur dafür.
Der vierte Fall ist subtiler: ein Ablauf, der länger leben muss als das Aufbewahrungsfenster. Prüft ein Test ein Postfach nach einer Stunde, während das Postfach zehn Minuten lebt, scheitert der Test aus Gründen, die nichts mit der geprüften Software zu tun haben. Prüfen Sie die Aufbewahrung, bevor Sie die Wartezeit in die Suite einbauen; nennt der Anbieter keine, behandeln Sie das als die Antwort.
Was ist mit den Nachrichten selbst?
Eine Nachricht, die ein Testpostfach empfängt, ist meist synthetisch, aber sie ist dennoch eine echte E-Mail, die ein echtes System erzeugt hat, und sie kann echte Werte enthalten. Ersetzungszeichenfolgen, die nicht ausgewertet wurden, interne Hostnamen in Tracking-Links und Debug-Kopfzeilen sind häufige Funde, und jeder davon verdient eine Meldung statt des Ignorierens.
Behandeln Sie das Postfach als kurzlebiges Artefakt und löschen Sie seinen Inhalt, wenn ein Lauf endet. Ein Staging-Postfach, das tausende ungelesene Nachrichten anhäuft, ist ein Protokoll ohne Aufbewahrungsrichtlinie, und ein Protokoll ohne Aufbewahrungsrichtlinie enthält irgendwann etwas, das es nicht enthalten sollte.
Die Nachrichten, die ein Test erzeugt, liefern außerdem eine billige Sicherheitsprüfung. Funktioniert ein Link zum Zurücksetzen des Passworts, der für eine Adresse gebaut wurde, auch für eine andere, oder läuft ein Verifizierungstoken nicht ab, fängt der postfachbasierte Test das auf eine Weise ab, die kein Einheitentest leisten kann.
Ein letzter Hinweis betrifft den Umgang mit dem Postfach selbst. Notieren Sie in der Fixture, welche Adresse zu welchem Lauf gehört hat. Ohne diese Zuordnung lässt sich später nicht mehr sagen, ob eine auffällige Nachricht aus dem eigenen Test stammt oder aus einem fremden Lauf auf derselben Domain.
Jedes hier besprochene Postfach, jede Adresse und jede Nachricht gehört zur Softwareprüfung. Erzeugte Adressen sind synthetische Datensätze, die existieren, um Ihre eigenen Abläufe auszuüben; sie dürfen nicht verwendet werden, um sich als jemand auszugeben, um Zugang zu Konten zu erlangen, die Ihnen nicht gehören, um Ratenbegrenzungen oder Verifizierungskontrollen zu umgehen oder um Post zu empfangen, die für jemanden von Bedeutung ist.