Skip to content
Starten Sie mit 100 kostenlosen Verifizierungs-Credits
Qualisend
Alle Artikel
Engineering / 27. Juni 2026

E-Mail-Adressen bei der Registrierung per Serverless-Funktion verifizieren

4 minutes read

Qualisend team
Ein Serverless-Route-Handler verifiziert eine E-Mail-Adresse bei der Registrierung und liefert ein Ergebnis zurück

Der günstigste Bounce ist der, der niemals auf Ihre Liste gelangt. Eine Adresse in dem Moment zu verifizieren, in dem jemand sie eintippt — in einer Serverless-Funktion hinter Ihrem Registrierungsformular — stoppt Tippfehler, tote Domains und Wegwerfadressen schon an der Tür, statt später dafür zu bezahlen, sie wieder herauszuputzen und dazwischen den Schaden für die Zustellbarkeit hinzunehmen. Dieser Leitfaden zeigt das Muster mit einer funktionierenden Serverless-Route.

Die kurze Antwort#

Legen Sie die Verifizierung in eine serverseitige Funktion, die Ihr Registrierungsformular aufruft: Sie hält Ihren API-Schlüssel, ruft POST /verify auf und reagiert auf das sofortige lokale Ergebnis — weisen Sie undeliverable ab, bieten Sie die did_you_mean-Korrektur an, markieren Sie disposable und lassen Sie alles andere durch. Zwei Regeln entscheiden über Erfolg oder Misserfolg: Rufen Sie die API niemals aus dem Browser auf (der Schlüssel muss serverseitig bleiben), und blockieren Sie eine Registrierung niemals, wenn die API langsam ist oder ausfällt (im Fehlerfall durchlassen).

Warum bei der Registrierung, nicht später#

Verifizierung beim Erfassen ist Prävention; das Bereinigen einer Liste ist Aufräumen, und Prävention gewinnt auf jeder Ebene. Ein Tippfehler, der schon an der Tastatur abgefangen wird, ist ein Abonnent, der mit einer einzeiligen Korrektur gerettet wurde. Eine tote Domain, die bei der Registrierung abgewiesen wird, wird nie zu einem Hard Bounce, der Ihre Bounce-Rate belastet. Eine Wegwerfadresse, die an der Tür blockiert wird, verwässert nie Ihre Kennzahlen oder Ihre Rechnung. Dieselbe Adresse, die drei Monate später bei einer Listenbereinigung auftaucht, hat Sie bereits einen Versand, einen Bounce und ein Stück Absenderreputation gekostet.

Das Muster#

Drei bewegliche Teile:

  1. Das Formular sendet die Adresse an Ihren eigenen Endpunkt — niemals direkt an die Verifizierungs-API, denn das würde Ihren Schlüssel offenlegen.
  2. Eine Serverless-Funktion hält den Schlüssel in einer Umgebungsvariablen, ruft POST /verify auf und verwandelt das Ergebnis in eine Entscheidung.
  3. Ihre Registrierungslogik reagiert auf die Entscheidung: abweisen, eine Korrektur vorschlagen oder akzeptieren.

Eine Serverless-Route#

Hier ist sie als Next.js-App-Router-Route-Handler, der auf Vercel als Serverless-Funktion bereitgestellt wird. Der Schlüssel liegt in QUALISEND_API_KEY; der Client bekommt ihn nie zu sehen:

// app/api/validate-email/route.ts
import { NextResponse } from "next/server";

const BASE = "https://app.qualisend.com/api/v1";

export async function POST(req: Request) {
  const { email } = await req.json();

  try {
    const res = await fetch(`${BASE}/verify`, {
      method: "POST",
      headers: {
        Authorization: `Bearer ${process.env.QUALISEND_API_KEY!}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ email }),
      signal: AbortSignal.timeout(4000), // don't let a slow probe stall signup
    });

    // On any API error, fail open — a real user must not be blocked by our outage.
    if (!res.ok) return NextResponse.json({ ok: true, degraded: true });

    const { result } = await res.json();

    if (result.status === "undeliverable") {
      return NextResponse.json({
        ok: false,
        reason: result.reason,          // invalid_email | invalid_domain | rejected_email
        suggestion: result.did_you_mean, // e.g. "jane@gmail.com"
      });
    }
    if (result.sub_flags?.disposable) {
      return NextResponse.json({ ok: false, reason: "disposable" });
    }

    // deliverable, risky, or unknown — accept, but pass along a typo suggestion if any
    return NextResponse.json({ ok: true, status: result.status, suggestion: result.did_you_mean });
  } catch {
    return NextResponse.json({ ok: true, degraded: true }); // timeout or network error → fail open
  }
}

Speichern Sie den Schlüssel mit dem Umgebungs-Tooling Ihrer Plattform (vercel env add QUALISEND_API_KEY), und er wird zur Laufzeit injiziert — niemals in den Client gebündelt.

Auf das Ergebnis reagieren#

Das sofortige result ist das lokale Ergebnis (Syntax, DNS, Wegwerfadresse, Rollenadresse, Tippfehler) — genau das, was Sie bei der Registrierung brauchen: schnell und ausreichend, um zu entscheiden:

ErgebnisAktion bei der Registrierung
undeliverableInline abweisen — "Diese Adresse scheint nicht zustellbar zu sein".
did_you_mean vorhandenDie Korrektur anbieten — "Meinten Sie jane@gmail.com?" — die wertvollste Rettung.
disposable-FlagAbweisen oder markieren, je nachdem, wie streng Ihr Produkt ist — siehe Rollen-, Wegwerf- & Freemail-Adressen.
risky / Catch-allAkzeptieren, aber kennzeichnen, damit Sie behutsam an das Catch-all-Segment senden können.
unknownAkzeptieren. Die Infrastruktur hat nicht geantwortet — verlieren Sie deswegen niemals eine echte Registrierung.
deliverableAkzeptieren.

Im Fehlerfall immer durchlassen#

Das eine, worüber nicht verhandelt wird: Wenn der Verifizierungsaufruf einen Fehler wirft, in einen Timeout läuft oder einen Nicht-2xx-Status zurückgibt, lassen Sie die Registrierung durch. Eine Verifizierungs-API ist ein Qualitätsfilter, kein Authentifizierungstor, und einen zahlenden Kunden wegen eines vorübergehenden Ausfalls zu blockieren, ist ein weitaus schlechteres Ergebnis, als eine fragwürdige Adresse durchzulassen. Sowohl der !res.ok-Zweig als auch das catch oben geben genau aus diesem Grund ok: true zurück. Protokollieren Sie die durchgelassenen Registrierungen und fangen Sie sie bei Ihrer nächsten Listenbereinigung ab.

Häufig gestellte Fragen#

Verlangsamt die Verifizierung bei der Registrierung das Formular?#

Kaum, wenn Sie es richtig machen. Das lokale Ergebnis kommt schnell zurück, und der 4-Sekunden-Timeout oben deckelt den schlimmsten Fall — darüber hinaus lassen Sie durch und akzeptieren die Registrierung ohnehin. Nutzer erhalten nahezu sofortige "Meinten Sie"-Korrekturen; sie warten nie auf einen langsamen Mailserver, weil Sie auf das sofortige lokale Ergebnis reagieren und nicht auf die SMTP-Prüfung warten.

Sollte ich Wegwerf-E-Mail-Adressen bei der Registrierung blockieren?#

Das hängt von Ihrem Produkt ab. Bei einem kostenpflichtigen oder reputationssensiblen Dienst lohnt es sich, Wegwerfadressen gleich an der Tür zu blockieren — von diesen Nutzern wollten Sie ohnehin nie wieder hören. Bei einer reibungsarmen Consumer-Registrierung kann es besser sein, sie für eine spätere Prüfung zu markieren, statt zusätzliche Hürden aufzubauen. Die Route oben weist sie ab; lockern Sie das zu einer Markierung, wenn das besser zu Ihrem Funnel passt.

Brauche ich das vollständige SMTP-bestätigte Ergebnis bei der Registrierung?#

Meistens nicht. Das sofortige lokale Ergebnis fängt den Großteil schlechter Registrierungen ab — Tippfehler, tote Domains, Wegwerfadressen — ganz ohne Warten. Das vollständige SMTP-bestätigte Ergebnis (über GET /jobs oder einen Massen-Job) heben Sie sich für die Listenbereinigung auf, wo Latenz keine Rolle spielt, das Erfassen jedes toten Postfachs aber sehr wohl.

Wie halte ich meinen API-Schlüssel geheim?#

Rufen Sie die Verifizierungs-API ausschließlich aus serverseitigem Code auf — einer Serverless-Funktion, einem Route-Handler oder einem Backend — und speichern Sie den Schlüssel in einer Umgebungsvariablen, niemals in clientseitigem JavaScript. Wenn der Schlüssel im Browser-Bundle landen würde, ist er am falschen Ort.


Bereit, das Ganze zu verdrahten? Der kostenlose Tarif enthält 100 Credits zum Testen des Ablaufs, und die API-Referenz hat den /verify-Endpunkt mit Copy-and-paste-Beispielen in sieben Sprachen.

Your reputation, protected.

Clean your first list in minutes. 100 free credits, no card required.

Get started