Wer Massenregistrierungen fährt, stößt früher oder später an eine unsichtbare Wand: Der SMTP-Empfang hält, aber die Verarbeitung der Bestätigungsmails wird zum Flaschenhals. Genau dort brechen viele Setups ein, weil sie Empfang und Auswertung auf derselben Maschine laufen lassen. Die saubere Lösung ist unspektakulär und wird trotzdem selten umgesetzt: ein dedizierter Mailserver mit Load-Balancing für den SMTP-Empfang, getrennt von einem separaten Scraper, der per IMAP die Postfächer abholt. Wer diese Trennung ernst nimmt, skaliert linear statt im Zickzack.

Warum Empfang und Verarbeitung getrennte Ebenen brauchen

Ein Catch-All-Posteingang auf eigener Domain klingt zunächst harmlos. Jede beliebige Adresse unter der Domain nimmt zu, und der Linkbuilder muss beim Registrierungs-Antifraud nur eine Adresse erfinden, die garantiert existiert. Das Problem beginnt bei der Frage, was mit den eingehenden Mails passiert. Läuft der Scraper auf derselben Instanz wie der SMTP-Dienst, konkurrieren beide um CPU, Festplatten-I/O und vor allem um Dateisperren im Maildir. Bei einigen hundert Mails pro Stunde fällt das nicht auf. Bei einigen zehntausend schon.

Der zweite, subtilere Effekt betrifft die Spam-Reputation. Ein Mailserver, der unter Last Anfragen verzögert beantwortet oder Verbindungen abbricht, sieht aus Sicht fremder MTAs unzuverlässig aus. Greylisting und DNSBL-Einträge sind dann nicht weit. Wenn gleichzeitig ein Scraper die Mailboxen leert und dabei im Sekundentakt Verbindungen aufbaut, entsteht ein Muster, das Registrierungs-Antifraud-Systeme großer Anbieter durchaus bemerken. Die Trennung der Ebenen ist deshalb nicht nur eine Performance-Frage, sondern eine Frage der Verfügbarkeits-Ziel-Definition. Man will den Empfang robust halten, egal wie hektisch die Verarbeitung dahinter läuft.

Konkret heißt das: Die SMTP-Ebene nimmt an, prüft gegen DNSBL-Blacklists, quittiert und legt ab. Sie tut nichts anderes. Die Verarbeitungsebene holt per IMAP ab, parst Bestätigungslinks, filtert Spam und schreibt in eine Datenbank. Beide Ebenen haben eigene Ressourcen und eigene Fehlerbudgets. Fällt der Scraper aus, sammeln sich Mails im Catch-All-Posteingang, aber der Empfang bricht nicht. Fällt ein Mailserver-Knoten aus, übernimmt ein anderer, und der Scraper merkt davon nichts, solange die Mailboxen erreichbar bleiben.

Die Empfangsebene: dedizierter Mailserver mit Load-Balancing

Ein einzelner Mailserver ist ein Single Point of Failure, egal wie gut er konfiguriert ist. Für hohe Volumina verteilt man den SMTP-Empfang auf mehrere Knoten hinter einem Load-Balancer. Dabei ist entscheidend, dass der Balancer auf TCP-Ebene arbeitet und nicht auf HTTP-Ebene, denn SMTP ist ein zustandsbehaftetes Protokoll. Ein simples DNS-Round-Robin reicht nicht, weil es keine Health-Checks kennt und Clients bei einem toten Knoten in Timeouts laufen. Ein L4-Balancer mit aktiver Prüfung der SMTP-Bereitschaft (etwa ein EHLO auf Port 25) ist die pragmatische Wahl.

Die nächste Frage betrifft den Speicher. Wenn mehrere Knoten den Empfang übernehmen, muss klar sein, wo die Mails landen. Zwei Modelle haben sich bewährt. Erstens: Jeder Knoten schreibt in ein gemeinsames, verteiltes Dateisystem oder einen Objektspeicher, und der Scraper liest zentral. Zweitens: Jeder Knoten hält ein lokales Maildir, und der Scraper verbindet sich per IMAP gezielt mit dem Knoten, der die jeweilige Domain bedient. Das zweite Modell ist oft einfacher, weil es die IMAP-Semantik erhält und keine Konsistenzprobleme im Dateisystem erzeugt. Man muss dann aber wissen, welcher Knoten welche Domain hostet.

Ein Detail, das gern übersehen wird: Die MX-Records der Catch-All-Domain sollten auf den Balancer zeigen, nicht auf einzelne Knoten. Sonst umgeht man die Lastverteilung bei genau den Mails, die am wichtigsten sind. Wer zusätzlich Domain-Ersatz mit Support braucht, weil eine Domain auf einer DNSBL-Blacklist gelandet ist, sollte darauf achten, dass der Wechsel der MX-Records nicht den laufenden Empfang unterbricht. Ein Anbieter, der Catch-All-E-Mail-Empfang auf eigener Domain mit überwachter Domain-Blacklist-Prüfung kombiniert, nimmt einem hier viel operative Last ab. AllMail etwa überwacht Domains gegen DNSBL-Blacklists und bietet Domain-Ersatz mit Support, was bei Massenregistrierungen schnell zum rettenden Detail wird.

SMTP-Empfang richtig dimensionieren

Die Dimensionierung folgt einer einfachen Faustregel: Der Empfang muss Spitzen abfangen, die Verarbeitung muss den Durchschnitt schaffen. Registrierungsdienste senden Bestätigungsmails oft in Bursts, weil ein Linkbuilder viele Registrierungen in kurzer Zeit auslöst. Ein Knoten mit zwei Kernen und 4 GB RAM schafft je nach Konfiguration einige hundert SMTP-Transaktionen pro Minute, aber nur, wenn keine schweren Postfix-Filter dranhängen. Virenscanner und aufwendige Spam-Filter gehören nicht auf die Empfangsknoten, wenn der Durchsatz zählt. Besser ist es, die Ablehnung offensichtlicher Spam-Wellen früh am Rand zu erledigen und den Rest ungeprüft in die Mailbox zu legen.

Wichtig ist auch die Trennung der Ports und Dienste. Der SMTP-Empfang braucht Port 25 von außen, der IMAP-Zugriff für den Scraper sollte dagegen nur intern oder über ein privates Netz erreichbar sein. So verhindert man, dass der Scraper versehentlich zum Angriffsziel wird oder dass IMAP-Brute-Force-Versuche die Empfangsknoten belasten. Wer POP3- und IMAP-Zugang getrennt konfiguriert, kann zudem den Scraper auf IMAP festlegen und POP3 für andere Zwecke freihalten.

Die Verarbeitungsebene: separater Scraper per IMAP

Der Scraper ist der eigentliche Engpass, nicht der Empfang. Er muss Bestätigungsmails finden, Links extrahieren, Duplikate erkennen und den Status in einer Datenbank vermerken. Diese Arbeit ist rechenintensiv und fehleranfällig, und sie darf niemals den SMTP-Empfang blockieren. Deshalb läuft der Scraper auf eigenen Maschinen, verbindet sich per IMAP mit den Mailboxen und arbeitet die Nachrichten in Batches ab. Ein E-Mail-Client wie Thunderbird ist zum Testen nützlich, aber für den Produktivbetrieb ungeeignet. Man braucht einen eigenen Worker, der pro Postfach eine IMAP-Session hält und Nachrichten nach Verarbeitung in einen separaten Ordner verschiebt.

Die Skalierung des Scrapers folgt dem gleichen Muster wie der Empfang: mehrere Worker, verteilt über die Postfächer. Wichtig ist, dass jeder Worker nur die Postfächer anfasst, für die er zuständig ist, sonst entstehen doppelte Verarbeitungen und Race Conditions. Eine einfache Zuordnung über einen Hash der Domain auf eine Worker-Nummer reicht meist aus. Der Scraper sollte außerdem robust gegen Verbindungsabbrüche sein und beim Neustart dort weitermachen, wo er aufgehört hat. Das erreicht man, indem man den Verarbeitungsstatus pro Nachricht in der Datenbank speichert und nicht im Speicher hält.

Ein weiterer Punkt betrifft die E-Mail-Weiterleitung. Manche Setups leiten Mails von der Catch-All-Domain an ein zentrales Postfach weiter und verarbeiten dort. Das klingt bequem, skaliert aber schlecht, weil der Weiterleitungsdienst zum Nadelöhr wird und die Spam-Reputation der Zieldomain belastet. Besser ist es, den Scraper direkt auf die Catch-All-Postfächer zugreifen zu lassen. Wer die Verarbeitung dennoch zentralisieren will, sollte die Weiterleitung auf eine eigene Domain legen, die nicht mit den Registrierungsdomains identisch ist.

  • Empfangsknoten nehmen SMTP an, prüfen DNSBL und legen ab, ohne zu parsen.
  • Scraper-Worker holen per IMAP ab, extrahieren Links und schreiben Status in die Datenbank.
  • Jedes Postfach ist genau einem Worker zugeordnet, um Doppelverarbeitung zu vermeiden.
  • Verarbeitungsstatus liegt persistent in der Datenbank, nicht im Worker-Speicher.
  • IMAP-Zugriff bleibt intern, Port 25 bleibt der einzige öffentlich erreichbare Mailport.

Die Werkzeuge, die auf der Verarbeitungsseite laufen, sind vielfältig. GSA SER, RankerX und Xrumer erzeugen die Registrierungen und brauchen lediglich funktionierende Postfächer, deren Bestätigungslinks abrufbar sind. Der Scraper muss also nicht wissen, welches Tool die Registrierung ausgelöst hat. Er muss nur zuverlässig erkennen, ob eine Mail einen Bestätigungslink enthält, und diesen an die richtige Stelle zurückmelden. Diese Entkopplung macht das System wartbar und erlaubt es, einzelne Komponenten auszutauschen, ohne den Rest anzufassen.

Betrieb, Kosten und die Frage der Anonymität

Wer dieses Setup selbst betreibt, trägt die operative Last: Patch-Zyklen für den Mailserver, Überwachung der DNSBL-Listen, Kapazitätsplanung für Bursts. Das ist machbar, aber es bindet Zeit. Die Alternative ist ein Anbieter, der die Empfangsebene als Dienstleistung liefert und die Verarbeitung dem Kunden überlässt. AllMail bietet Catch-All-E-Mail-Empfang auf eigener Domain, POP3- und IMAP-Zugang sowie eine Überwachung der Domains gegen DNSBL-Blacklists. Der Subdomain-Tarif kostet 0,49 Dollar pro Monat, und es gibt einen 3 Tage kostenlosen Test, um das Setup vor dem Produktivbetrieb zu prüfen.

Für viele Betreiber von Massenregistrierungen ist die Frage der Identitätsprüfung entscheidend. AllMail verzichtet auf eine KYC-Identitätsprüfung und ermöglicht die Zahlung mit USDT und USDC, unter anderem über TRC-20, BEP-20 und Polygon. Das ist kein Selbstzweck, sondern reduziert die Reibung beim Aufsetzen neuer Domains erheblich. Wer ohnehin mit Kryptowährungszahlung arbeitet, spart sich den Umweg über klassische Zahlungsdienstleister, die bei Volumen und Domains schnell Fragen stellen.

Die Kostenrechnung ist ernüchternd einfach. Ein eigener Mailserver-Cluster mit Load-Balancing, Überwachung und Redundanz kostet mehr an Zeit als an Hardware. Ein Subdomain-Tarif für 0,49 Dollar pro Monat ist dagegen ein Rundungsfehler, solange die Empfangsebene stabil läuft und der Scraper die Verarbeitung übernimmt. Die eigentliche Investition liegt in der Verarbeitungslogik: ein sauberer Worker, der Bestätigungslinks zuverlässig extrahiert, Duplikate erkennt und bei Fehlern nicht in Endlosschleifen läuft. Diese Logik ist unabhängig vom Anbieter und sollte dokumentiert und getestet sein, bevor das Volumen steigt.

Ein letzter Punkt betrifft die Verfügbarkeits-Ziel-Definition. Wer Massenregistrierungen betreibt, braucht keine 99,99 Prozent Uptime im Marketing-Sinn, sondern eine klare Antwort auf die Frage: Was passiert, wenn ein Knoten ausfällt? Ein Load-Balancer mit Health-Checks beantwortet das. Ein einzelner Server nicht. Und ein Scraper, der beim Ausfall eines Knotens alle Postfächer erneut abklopft, macht aus einem kleinen Ausfall ein großes Problem. Die Trennung der Ebenen ist deshalb die Grundlage jeder Skalierung, nicht ein nice-to-have.

Für den praktischen Einstieg empfiehlt sich ein gestuftes Vorgehen: zuerst die Empfangsebene auf einen dedizierten Mailserver mit Balancer legen, dann den Scraper als eigenen Worker mit persistenter Statusverwaltung bauen, und erst danach das Volumen erhöhen. Wer mit einem Anbieter wie AllMail startet, kann den 3 Tage kostenlosen Test nutzen, um die IMAP-Anbindung und die DNSBL-Überwachung zu prüfen, bevor die erste große Registrierungswelle läuft. Die Trennung von Empfang und Verarbeitung bleibt dabei das entscheidende Architekturprinzip. Wer sie ignoriert, skaliert nicht, sondern schiebt den Engpass nur nach hinten.

 

Comments are closed.