E-Mails aus Text extrahieren
Fügen Sie beliebigen Text ein und erhalten Sie alle E-Mail-Adressen als saubere Liste: Aus einem Satz mit hello@example.com wird genau diese Adresse, mit der Anzahl 1. Wiederholungen werden zusammengeführt oder behalten, wie Sie möchten. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- Contact us at hello@example.com today.
- Extrahierte E-Mail-Adressen
- hello@example.com
- Anzahl der Adressen
- 1
- Abgleichmodus
- Unique
Fügen Sie Klartext ein und erhalten Sie jede e-mail-ähnliche Adresse als saubere Liste. Wählen Sie unique, um Duplikate ohne Groß/Klein zu entfernen und die erste Form zu behalten, oder all für jedes Vorkommen. Ohne Netz und ohne Postfachprüfung: rein lokale Extraktion.
Nur eindeutige Adressen oder jeder Treffer
Fügen Sie Notizen, einen E-Mail-Verlauf oder den Text einer Webseite ein, und das Werkzeug liest ihn von links nach rechts und sucht alles, was die Form name@domain.endung hat. Mit der Standardeinstellung zählen Adressen, die sich nur in der Groß- und Kleinschreibung unterscheiden, einmal: Die zuerst geschriebene Form bleibt erhalten, in der Reihenfolge des ersten Auftretens. Die andere Einstellung behält jedes Vorkommen mit seiner ursprünglichen Schreibweise, was hilft, wenn Sie später wissen müssen, wie oft eine Adresse vorkommt. Der Satz Contact us at hello@example.com today ergibt eine Adresse und die Anzahl 1.
Was es nicht tut und wobei es hilft
Das Werkzeug erkennt Adressen nur an ihrer Form. Es stellt keine Netzwerkverbindung her und korrigiert keine Adresse, damit sie richtiger aussieht; eine Besonderheit wie zwei Punkte hintereinander vor dem At-Zeichen erscheint genau so, wie sie geschrieben wurde. Damit eignet es sich, um Kontakte aus eingefügten Notizen für eine Interessentenliste zu ziehen, alle in einem langen Supportfall genannten Personen zu sammeln oder vor dem Import in eine Tabelle eine Liste eindeutiger Adressen zu erstellen.
Lockerer Extraktor, kein voller RFC-Validator
Scannt den Text von links nach rechts mit einem festen ASCII-Muster local@domain.tld. Erfasst Adressen so wie sie stehen, inklusive Eigenheiten wie Doppelpunkten im Local. Beweist nicht, dass das Postfach existiert, und schreibt die Zeichenkette nicht strenger um.
Unicode und internationalisierte Mail außerhalb v1
Nicht-ASCII-Zeichen im Local gehören nicht zum Muster; ein gemischter Local kann einen partiellen ASCII-Treffer liefern statt des vollen Tokens oder leer. IDN und Punycode werden in dieser Version nicht unterstützt.
Wie viel Text Sie einfügen können
Text ist Pflicht und auf hunderttausend Zeichen begrenzt. Die Antwort echo t nicht den ganzen Quelltext, nur emails, count und mode.
Anwendungsfälle
CRM und Leads
Ziehen Sie Adressen aus eingefügten Notizen.
Support
Sammeln Sie Kontakte aus einem langen Ticket.
Datenbereinigung
Bauen Sie eine eindeutige Liste vor dem Import.
Häufige Fragen
Prüft das Werkzeug, ob das Postfach existiert?
Nein. Es findet nur Textstellen, die wie eine Adresse aufgebaut sind, ohne einen Mailserver abzufragen oder das Netzwerk zu nutzen. Ob ein Postfach wirklich existiert, muss gesondert geprüft werden.
Werden Adressen mit Umlauten oder internationale Domains erkannt?
Nicht vollständig. Umlaute oder Zeichen anderer Schriften vor dem At-Zeichen gehören nicht zum Suchmuster, daher kann das Ergebnis nur den Teil ohne Sonderzeichen oder gar nichts enthalten. Internationale Domains werden in dieser Version nicht unterstützt.
Wie viel Text kann ich einfügen?
Bis zu 100.000 Zeichen. Längere Texte teilen Sie vor dem Einfügen in mehrere Teile auf; ein leerer Text wird ebenfalls nicht angenommen, denn es braucht immer etwas zum Durchsuchen.
Enthält das Ergebnis meinen ursprünglichen Text?
Nein. Das Ergebnis enthält nur die gefundenen Adressen, ihre Anzahl und die gewählte Einstellung. Der Rest des eingefügten Textes, etwa Namen oder Notizen rund um die Adressen, wird nie wiedergegeben.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/text/extract-emails \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Contact us at hello@example.com today."}'const res = await fetch("https://api.kit.forhosting.com/text/extract-emails", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Contact us at hello@example.com today."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/extract-emails",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Contact us at hello@example.com today."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/extract-emails", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Contact us at hello@example.com today."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Contact us at hello@example.com today."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/extract-emails", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "Contact us at hello@example.com today."
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.extract_emails",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_text_chars | 100000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Unique gegenüber all
unique fasst Treffer zusammen, die sich nur in der Großschreibung unterscheiden, behält die erste Form und die Reihenfolge des ersten Auftretens. all behält jedes Vorkommen mit originaler Schreibweise — nützlich für spätere Häufigkeiten in einer Pipeline.
Grenzen und typisierte Fehler
Unbekannte Modes und Nicht-String-Text liefern typisiertes invalid_input.
Integrationsbeispiele
CI
Fixieren Sie extrahierte Arrays in Fixtures.
Technische Fragen
Prüft es das Postfach?
Nein. Nur Textextraktion ohne DNS/SMTP.
Was ist unique?
Dedup ohne Groß/Klein, erste Form und Reihenfolge.
Internationalisierte Adressen?
In v1 nicht vollständig.
Kommt der volle Text zurück?
Nein. Nur emails, count und mode.
Größenlimit?
100000 Zeichen.
Kostenlos im Browser?
Ja. Die native App nutzt die API zu $0.002.