Google Forms akzeptiert bereitwillig jane@gmial.com, eine Wegwerfadresse von
einer Einweg-Domain oder die Adresse eines Unternehmens, das vor zwei Jahren
dichtgemacht hat. Die eingebaute Einstellung „gültige E-Mail" prüft nur, ob der
Text wie eine Adresse aussieht — sie fragt nie, ob wirklich ein Postfach
dahintersteht. Um E-Mail-Adressen aus Google Forms tatsächlich zu verifizieren,
brauchen Sie einen zweiten Schritt: eine echte Prüfung gegen das Mailsystem,
entweder in dem Moment, in dem eine Antwort eintrifft, oder anschließend im
Stapel. Dieser Leitfaden zeigt beides, mit Google Apps Script als Bindeglied.
Die kurze Antwort#
Zwei Wege, je nachdem, ob Sie das Ergebnis live benötigen oder im Stapel bereinigen können:
- Echtzeit — fügen Sie in Apps Script einen
onFormSubmit-Trigger hinzu, der die eingereichte Adresse ausliest, die Qualisend-API mitUrlFetchAppaufruft und das Ergebnis zurück in das verknüpfte Google Sheet schreibt. Jede neue Antwort wird bewertet, sobald sie eintrifft. - Stapel — die Antworten liegen bereits in einem Sheet, laden Sie sie also als CSV herunter und führen Sie eine einzige Massenverifizierung durch. Am besten für ein Formular, das schon eine Weile Antworten sammelt, oder wenn Sie keinen Code anfassen möchten.
Beide stützen sich auf dasselbe Ergebnis — deliverable, risky,
undeliverable oder unknown, plus Unterkennzeichen für Wegwerf-, Rollen- und
Freemail-Adressen. Was sich ändert, ist das Timing.
Weg 1: E-Mail-Adressen aus Google Forms in Echtzeit mit Apps Script verifizieren#
Google Forms kann von sich aus keine externe API aufrufen, aber das Sheet, in das seine Antworten fließen, kann es — über Apps Script. Der Plan ist klein: bei jeder Einreichung auslösen, die E-Mail greifen, Qualisend danach fragen und die Antwort neben die Zeile stempeln.
Das Skript einrichten. Öffnen Sie das Google Sheet, das Ihre Antworten
sammelt (im Formular-Editor Antworten → Mit Tabellen verknüpfen, falls noch
nicht geschehen). Gehen Sie vom Sheet aus zu Erweiterungen → Apps Script.
Speichern Sie vor allem anderen Ihren Schlüssel, damit er nie im Code steht:
öffnen Sie im Skript-Editor Projekteinstellungen → Script Properties und
fügen Sie QUALISEND_API_KEY mit Ihrem Wert hinzu. Das Skript liest ihn zur
Laufzeit mit PropertiesService aus.
Fügen Sie dann einen Handler wie diesen ein. Prüfen Sie in der API-Referenz den genauen Endpunktpfad und die Struktur der Anfrage — die URL unten ist ein Platzhalter:
// Bound to the responses spreadsheet.
// Runs on each new Form submission (see trigger setup below).
const QUALISEND_URL = 'https://api.qualisend.com/v1/verify'; // confirm at /developers
const EMAIL_QUESTION = 'Email address'; // your exact question title
const STATUS_COL = 8; // an empty column to write the verdict into
function onFormSubmit(e) {
const email = (e.namedValues[EMAIL_QUESTION] || [])[0];
if (!email) return;
const apiKey = PropertiesService.getScriptProperties().getProperty('QUALISEND_API_KEY');
const res = UrlFetchApp.fetch(QUALISEND_URL, {
method: 'post',
contentType: 'application/json',
headers: { Authorization: 'Bearer ' + apiKey },
payload: JSON.stringify({ email }),
muteHttpExceptions: true, // handle errors ourselves instead of throwing
});
// Fail open: if the check errors, keep the response — never lose a real lead.
if (res.getResponseCode() !== 200) return;
const { result } = JSON.parse(res.getContentText());
const row = e.range.getRow();
const sheet = e.range.getSheet();
sheet.getRange(row, STATUS_COL).setValue(result.status); // deliverable | risky | undeliverable | unknown
sheet.getRange(row, STATUS_COL + 1).setValue(result.score); // 0-100
}
Das e-Objekt, das Ihnen eine Formulareinreichung übergibt, ist der nützliche
Teil: e.namedValues ordnet jedem Fragetitel seine Antwort zu, und e.range ist
die Zeile, die gerade geschrieben wurde — e.range.getRow() sagt Ihnen also
genau, welche Zeile Sie stempeln müssen. Stimmen Sie EMAIL_QUESTION exakt auf
den Titel Ihrer Frage ab und richten Sie STATUS_COL auf eine leere Spalte.
Den Trigger hinzufügen. Ein einfacher Trigger (eine reine
onFormSubmit-Funktion) kann UrlFetchApp nicht aufrufen, denn das Erreichen
eines externen Dienstes erfordert eine Autorisierung, die einfache Trigger nicht
besitzen. Sie brauchen stattdessen einen installierbaren Trigger. Öffnen Sie im
Skript-Editor Trigger (das Uhrsymbol) → Trigger hinzufügen und wählen
Sie:
- Funktion:
onFormSubmit - Ereignisquelle: Aus Tabelle
- Ereignistyp: Beim Absenden des Formulars
Speichern Sie, bestätigen Sie einmal die Autorisierungsaufforderung, und schon sind Sie live. Senden Sie eine Testantwort ab und beobachten Sie, wie Status und Score in Ihren gewählten Spalten erscheinen.
Eine Anmerkung zum Timing. Qualisend liefert die schnellen lokalen Prüfungen
(Syntax, Domain, Wegwerfadresse, Rolle, Tippfehler) sofort, während die tiefere
SMTP-Postfachprüfung kurz danach abgeschlossen wird. Für einen
Echtzeit-Stempel im Sheet ist das sofortige result das, was Sie wollen — Sie
erhalten ein umsetzbares Ergebnis, ohne die absendende Person warten zu lassen.
Wenn Sie später für eine Grenzfall-Zeile die SMTP-bestätigte Antwort möchten,
schicken Sie sie erneut durch den Stapel-Weg, wo ein paar Sekunden Latenz keine
Rolle spielen. Wie E-Mail-Verifizierung
funktioniert erklärt, warum die SMTP-Phase
die langsame ist.
Weg 2: Das Antworten-Sheet im Stapel verifizieren#
Wenn Ihr Formular seit Monaten Antworten sammelt oder Sie kein Skript pflegen möchten, überspringen Sie den Trigger ganz. Ihre Antworten sind bereits eine Tabelle — verifizieren Sie sie in einem Durchgang.
- Öffnen Sie das verknüpfte Google Sheet (oder den Tab Antworten des Formulars → Mit Tabellen verknüpfen).
- Datei → Herunterladen → Kommagetrennte Werte (.csv).
- Laden Sie diese CSV in die Massenverifizierung von Qualisend hoch, ordnen Sie die E-Mail-Spalte zu und starten Sie den Job.
- Laden Sie die Ergebnisse herunter und ordnen Sie sie über die E-Mail-Adresse wieder Ihren Zeilen zu, oder fügen Sie die Status-Spalte zurück in das Sheet ein.
Der Stapel führt die gesamte Pipeline, einschließlich der SMTP-Prüfung, für jede Zeile aus — er fängt also tote Postfächer, die eine Syntaxprüfung nie erwischen würde. Das ist dieselbe Routine, die Sie für jede exportierte Liste verwenden würden; unser Leitfaden zum Bereinigen einer E-Mail-Liste behandelt das Entfernen von Duplikaten, den Umgang mit Rollenadressen und was mit dem riskanten Segment zu tun ist. Für eine einmalige Plausibilitätsprüfung einer einzelnen Adresse braucht der kostenlose Einzeladressen-Checker überhaupt keine CSV.
Nach den Ergebnissen handeln#
Ein Ergebnis ist nur dann nützlich, wenn es ändert, was Sie als Nächstes tun. Wie auch immer Sie es erhoben haben, behandeln Sie die vier Status so:
| Ergebnis | Was mit der Antwort zu tun ist |
|---|---|
deliverable | Behalten. Ein echtes Postfach hat die Prüfung akzeptiert — sicher zu versenden. |
undeliverable | Unterdrücken. Ein Versand bedeutet einen Hard Bounce, und Bounces sind das, was Ihrer Absenderreputation schadet. |
risky | Segmentieren. Oft eine Catch-all-Domain — vorsichtig senden und das Engagement beobachten, bevor Sie ihr vertrauen. |
unknown | Später erneut versuchen. Der Mailserver gab keine klare Antwort; verwerfen Sie deswegen keinen möglicherweise echten Lead. |
Die Unterkennzeichen verfeinern das Bild. Ein disposable-Kennzeichen bei einem
Gewinnspiel-Eintrag ist meist eine Wegwerfadresse, die Sie fallenlassen können;
ein role-Kennzeichen (info@, support@) kann je nach Zweck des Formulars
relevant sein. Rollen-, Wegwerf- und
Freemail-Adressen erklärt, wann sich das
Filtern jeder Art lohnt. Im Echtzeit-Skript können Sie sofort darauf reagieren —
zum Beispiel eine „Prüfen"-Notiz in eine Spalte schreiben, wenn
result.sub_flags.disposable wahr ist.
Welchen Weg sollten Sie nutzen?#
Greifen Sie zum Echtzeit-Trigger in Apps Script, wenn Antworten Leads sind, die Sie schnell weiterverfolgen — Demo-Anfragen, Wartelisten, geschützte Inhalte — und Sie das Ergebnis in dem Moment neben jeder Zeile haben möchten, in dem sie eintrifft. Er kostet ein Guthaben pro Einreichung und etwas Skriptpflege.
Greifen Sie zum Stapel, wenn Sie einen Rückstau bereinigen müssen, wenn Sie
lieber auf Code verzichten oder wenn ein stark frequentiertes Formular das
Privatkonto-Kontingent von UrlFetchApp sprengen würde. Nichts hindert Sie
daran, beides zu tun: den Trigger für neue Antworten laufen lassen und einen
monatlichen Stapel-Durchlauf, um Adressen erneut zu prüfen, die veraltet sein
könnten.
So oder so gilt dasselbe Prinzip aus unserem Leitfaden zur Anmeldeverifizierung — verifizieren Sie, bevor eine Adresse Ihr Versandtool erreicht, damit ein Tippfehler zu einem korrigierten Lead wird statt zu einem Bounce, für den Sie später bezahlen. Wenn Ihre Formulare über mehrere Tools verteilt sind, lässt sich das Muster verallgemeinern: Ein No-Code-Zapier-Schritt oder ein Typeform-Webhook erledigt für diese Plattformen dieselbe Aufgabe.
Häufig gestellte Fragen#
Kann Google Forms E-Mail-Adressen von sich aus verifizieren?#
Nein. Google Forms hat eine Option „Antwortvalidierung", die prüft, ob eine
Antwort wie eine E-Mail aussieht — die richtige Form, ein @, eine Domain —,
kontaktiert aber niemals den Mailserver und kann daher ein echtes Postfach nicht
von einem Tippfehler oder einer Wegwerf-Domain unterscheiden. Diese
Formprüfung ist nur ein erster Filter — sie lässt jane@gmial.com ungehindert
durch. Echte Verifizierung braucht den oben beschriebenen API- oder
Stapel-Schritt.
Muss ich programmieren, um Google-Forms-Antworten zu verifizieren?#
Nur für den Echtzeit-Weg. Der Apps-Script-Trigger erfordert das Einfügen eines kurzen Skripts und das Einrichten eines Triggers, aber der Code ist klein und wiederverwendbar. Wenn Sie ganz darauf verzichten möchten, ist der Stapel-Weg reines Anklicken: die Antworten als CSV herunterladen, zur Massenverifizierung hochladen und die Ergebnisse wieder zusammenführen. Kein Skript, kein Trigger.
Verlangsamt die Verifizierung die Person, die mein Formular ausfüllt?#
Nein. Mit dem Apps-Script-Trigger läuft die Prüfung nach dem Absenden — die befragte Person hat die Bestätigungsseite bereits gesehen, während Ihr Sheet im Hintergrund still gestempelt wird. Nichts blockiert das Formular. Wenn Sie möchten, dass die Verifizierung das Absenden selbst blockiert, gehört das auf ein eigenes Formular mit einem Serverless-Endpunkt, nicht auf das native Google Forms.
Wie halte ich meinen Qualisend-API-Schlüssel aus dem Skript heraus?#
Speichern Sie ihn in den Script Properties, nicht im Code. Öffnen Sie im
Apps-Script-Editor Projekteinstellungen → Script Properties, fügen Sie
QUALISEND_API_KEY hinzu und lesen Sie ihn zur Laufzeit mit
PropertiesService.getScriptProperties().getProperty(...) aus, so wie es das
Snippet oben tut. Verwenden Sie einen eingeschränkten Schlüssel aus Ihrem
Qualisend-Dashboard, sodass er nur Verifizierungsrechte besitzt,
und rotieren Sie ihn, falls er jemals offengelegt wird.
Bereit, Ihre Google-Forms-Antworten zu bereinigen? Der kostenlose
Tarif enthält 100 Guthaben, um beide Wege zu testen, der kostenlose
Einzeladressen-Checker braucht überhaupt keine Einrichtung,
und die API-Referenz enthält den /verify-Endpunkt mit
Copy-and-paste-Beispielen in sieben Sprachen.