Der Versand von Einmalpasswörtern (OTP) und Zwei-Faktor-Authentifizierungscodes per E-Mail ist ein fester Bestandteil moderner Authentifizierungsprozesse. Doch während Menschen diese Codes mühelos erkennen und eingeben können, stellt die automatisierte Verarbeitung dieser Nachrichten viele Systeme vor Herausforderungen. Die Codes erreichen den Posteingang Sekunden nach der Anfrage, sind in vordefinierte E-Mail-Templates eingebettet und werden von jedem Anbieter unterschiedlich formatiert. Entwickler müssen daher zuverlässige Methoden finden, um diese Codes programmatisch aus den Nachrichten zu extrahieren.
Zwei Ansätze für die Code-Extraktion
Die Extraktion von OTP-Codes lässt sich auf zwei zentrale Wege umsetzen, die sich in ihrem Anwendungsfall unterscheiden. Für Entwickler, die im Terminal arbeiten oder lokale Tests durchführen, bietet sich der Einsatz des Nylas CLI an. Dieser Befehlszeilen-Client stellt eine dedizierte Funktion bereit, mit der sich der neueste Code aus einem Postfach abrufen lässt. Für produktive Backend-Systeme oder KI-Agenten, die auf eingehende E-Mails reagieren müssen, empfiehlt sich hingegen ein API-basierter Ansatz. Hier wird die Extraktion in den eigenen Workflow integriert: Ein Webhook benachrichtigt das System über eine neue Nachricht, das daraufhin die Nachrichteninhalte abruft und den Code extrahiert.
- Pull-basierter Ansatz (CLI): Der Entwickler fordert den Code aktiv an, sobald er benötigt wird. Dies eignet sich besonders für interaktive Szenarien wie Terminal-Skripte oder manuelle Tests.
- Push-basierter Ansatz (API): Das System wird automatisch über neue Nachrichten informiert und verarbeitet diese sofort. Dies ist ideal für produktive Umgebungen, in denen eine manuelle Intervention nicht möglich ist.
In der Praxis nutzen Entwickler beide Methoden parallel: Zunächst wird im Terminal ermittelt, welcher Anbieter den Code sendet und wie dieser formatiert ist. Diese Erkenntnisse fließen dann in die produktive API-Integration ein.
OTP-Codes direkt aus dem Terminal abrufen
Für Entwickler, die Codes schnell und unkompliziert benötigen, bietet das Nylas CLI den Befehl nylas otp get. Dieser durchsucht das standardmäßig konfigurierte Postfach nach dem neuesten OTP-Code und gibt ihn aus. Standardmäßig wird der Code zusätzlich in die Zwischenablage kopiert, sodass er direkt in Formularfelder eingefügt werden kann. Soll ein spezifisches Postfach angesprochen werden, kann die E-Mail-Adresse des verbundenen Kontos angegeben werden.
# Neuesten Code aus dem Standard-Postfach abrufen
nylas otp get
# Code aus einem bestimmten Postfach abrufen (nur der Code, keine Zwischenablage)
nylas otp get benutzer@beispiel.de --raw --no-copyDie Flags --raw und --no-copy sind besonders für automatisierte Skripte relevant. Mit --raw wird ausschließlich der numerische Code ausgegeben, ohne zusätzliche Formatierungen, was die Weiterverarbeitung in Skripten erleichtert. Der Befehl CODE=$(nylas otp get --raw --no-copy) speichert den Code direkt in einer Variablen. Das Flag --no-copy verhindert das Kopieren des Codes in die Zwischenablage, was in automatisierten Workflows ohne grafische Oberfläche sinnvoll ist. Alternativ kann mit --json ein strukturiertes Ergebnis zurückgegeben werden, das weitere Metadaten enthält.
Echtzeit-Überwachung eingehender Codes
In vielen Fällen wird der OTP-Code erst nach dem Absenden einer Anfrage generiert und trifft wenige Sekunden später im Postfach ein. Ein einmaliger Abruf wäre in diesem Szenario riskant. Die Lösung bietet der Befehl nylas otp watch, der das Postfach kontinuierlich überwacht und den Code sofort ausgibt, sobald dieser eintrifft. Dies ist besonders nützlich für Workflows wie Anmeldungen, bei denen der Nutzer zunächst ein Formular absendet und dann auf den Code wartet.
# Überwachung alle 5 Sekunden (Standard: 10 Sekunden)
nylas otp watch benutzer@beispiel.de --interval 5Das Flag --interval definiert das Zeitintervall, in dem das Postfach auf neue Nachrichten überprüft wird. Ein Wert von 5 Sekunden sorgt in Tests für eine fast sofortige Reaktion, ohne den E-Mail-Anbieter übermäßig zu belasten. Wie beim Befehl get wird der Code standardmäßig in die Zwischenablage kopiert, es sei denn, --no-copy wird verwendet. Dieser Ansatz macht manuelle Anmeldeprozesse deutlich effizienter: Der Nutzer startet die Anfrage, wechselt zum Terminal und kann den Code direkt verwenden, sobald dieser eintrifft.
Integration in Backend-Systeme und KI-Agenten
Während das CLI ideal für Entwickler ist, die direkt am Terminal arbeiten, benötigen Backend-Systeme oder KI-Agenten eine programmatische Lösung. Hier kommt die Nylas API ins Spiel. Da es keinen dedizierten Endpunkt für OTP-Codes gibt, setzt sich die Lösung aus mehreren Schritten zusammen. Der empfohlene Ansatz ist ereignisgesteuert: Ein Webhook benachrichtigt das System über eine neue Nachricht, woraufhin der Code extrahiert wird.
Der Workflow besteht aus drei Phasen:
- Filterung: Der Webhook löst bei jeder eingehenden Nachricht aus. Zunächst muss die Nachricht identifiziert werden, die den OTP-Code enthält. Dies erfolgt typischerweise durch die Prüfung des Absenders oder des Zeitpunkts der Nachricht im Verhältnis zur ursprünglichen Anfrage.
- Abruf: Die ausgewählte Nachricht wird über den Endpunkt
GET /v3/grants/{grant_id}/messages/{message_id}/abgeholt. - Extraktion: Der numerische Code wird aus dem Nachrichtentext extrahiert.
Durch diese Struktur landet der Code sofort im Workflow des Systems und vermeidet manuelle Polling-Schleifen. Ein minimaler Webhook-Handler könnte wie folgt aussehen:
app.post("/webhooks/nylas", async (req, res) => {
res.sendStatus(200); // Sofortige Bestätigung der Webhook-Zustellung
const nachricht = req.body.data.object;
if (!istVonErwartetemAbsender(nachricht)) return;
const vollstaendigeNachricht = await nylas.messages.find({
identifier: GRANT_ID,
messageId: nachricht.id,
});
const code = extrahiereCode(vollstaendigeNachricht.data.body);
if (code) await codeUebermitteln(code);
});Reguläre Ausdrücke für die Code-Extraktion nutzen
Die meisten OTP- und 2FA-E-Mails folgen einem standardisierten Format, das sich mit regulären Ausdrücken zuverlässig extrahieren lässt. Ein einfaches Muster für einen sechsstelligen Code deckt den Großteil der Anwendungsfälle ab und bietet eine schnelle, deterministische Lösung.
// Extrahiere einen sechsstelligen Code aus dem Nachrichtentext
const treffer = nachrichtentext.match(/\b(\d{6})\b/);
const code = treffer ? treffer[1] : null;Dieser Ansatz sollte auf den Plain-Text-Inhalt der Nachricht angewendet werden – entweder direkt oder nach dem Entfernen von HTML-Tags. Dies stellt sicher, dass nur der sichtbare Code erfasst wird und keine versteckten Ziffern in CSS-Formatierungen oder Tracking-Pixeln berücksichtigt werden. Falls Codes in variabler Länge (z. B. vier bis acht Stellen) auftreten, kann das Muster entsprechend angepasst werden: \b(\d{4,8})\b.
Fazit: Von der Entwicklung zur Produktion
Die Extraktion von OTP-Codes aus E-Mails ist eine scheinbar einfache, aber in der Praxis komplexe Herausforderung. Entwickler profitieren von flexiblen Tools wie dem Nylas CLI, um Codes während der Entwicklungsphase schnell zu testen und zu validieren. Für produktive Systeme empfiehlt sich hingegen die Integration in den eigenen Workflow über Webhooks und reguläre Ausdrücke. Diese Kombination ermöglicht eine zuverlässige, automatisierte Verarbeitung von Zwei-Faktor-Authentifizierungscodes – und das ohne manuelle Eingriffe. Mit den vorgestellten Methoden können Teams ihre Authentifizierungsprozesse effizient skalieren und gleichzeitig die Nutzererfahrung verbessern.
KI-Zusammenfassung
Learn how to automate one-time passcode and 2FA code extraction from emails using Nylas CLI and API. Build faster scripts, tests, and login flows with these proven methods.