Yuva Email Worker für Cloudflare
Support-E-Mail über Cloudflare.Kein Mailserver zu betreiben.
Cloudflare® Email Routing nimmt die Mail für Ihre Support-Adressen an, und der Open-Source-Yuva-Email-Worker übergibt jede Nachricht signiert an Yuva. Sie landet als Konversation in Ihrem gemeinsamen Posteingang, die Ihr Team beantwortet.
Was es ist
Email Routing davor
Cloudflare Email Routing wird der MX Ihrer Domain und nimmt die Mail an. Yuva lauscht nicht auf SMTP, es gibt also keinen Mailserver zu installieren oder zu patchen.
Ein kleiner Open-Source-Worker
Der Yuva Email Worker liest die rohe Nachricht und den Envelope, signiert die Anfrage und sendet sie an Yuva. Parsing, Threading und Spam-Entscheidungen bleiben auf dem Server.
Echte Konversationen
Mail an eine Support-Adresse eröffnet oder setzt eine Konversation im Posteingang fort, und das Team antwortet im selben Panel wie bei Chat und App-Nachrichten.
Wie eine Nachricht vom Kunden zu Ihrem Team gelangt
- 1Ein Kunde schreibt an eine Ihrer Support-Adressen, zum Beispiel support@example.com.
- 2Cloudflare Email Routing nimmt die Nachricht an und übergibt sie dem Yuva Email Worker.
- 3Der Worker signiert die rohe Nachricht, beide Envelope-Adressen und einen Zeitstempel mit HMAC-SHA256 unter einem Secret, das Sie mit Yuva teilen, und sendet sie an /ingress/email auf Ihrem Yuva-Server.
- 4Yuva prüft die Signatur und dass der Zeitstempel innerhalb von 5 Minuten liegt, bevor es die Nachricht liest. Eine Anfrage mit falscher Signatur wird abgewiesen.
- 5Yuva findet den E-Mail-Kanal der Empfängeradresse und ordnet die Nachricht anhand von In-Reply-To und References der passenden Konversation zu. Alles andere eröffnet eine neue Konversation. Eine Antwort öffnet die Konversation wieder.
- 6Ihr Team antwortet im Panel. Die Antwort geht über das eigene SMTP-Konto des E-Mail-Kanals, etwa Amazon SES, Postmark oder Ihr eigenes Relay, von derselben Adresse und im selben Thread. Antworten laufen nicht über den Worker.
Ablehnungen erreichen den Absender
Lehnt Yuva eine Nachricht endgültig ab, etwa bei einer unbekannten Adresse, einem gesperrten Absender oder einer zu großen Nachricht, weist der Worker sie ab, und der Absender erhält einen dauerhaften SMTP-Fehler mit der Begründung von Yuva.
Wenn Yuva nicht erreichbar ist
Antwortet Yuva mit einem Serverfehler, nicht innerhalb von 20 Sekunden oder ist es nicht erreichbar, kann der Worker die Nachricht an eine Adresse Ihrer Wahl weiterleiten, sofern Sie FALLBACK_FORWARD gesetzt haben. Diese Adresse muss ein bestätigtes Ziel in Email Routing sein. Die Nachricht kommt dann als einfache Weiterleitung an und erscheint nicht in Yuva. Ohne FALLBACK_FORWARD schlägt die Zustellung mit einem Fehler fehl, und der sendende Server versucht es womöglich später erneut.
In wenigen Schritten einrichten
Sie brauchen einen Yuva-Server und ein Cloudflare-Konto, das die Domain verwaltet.
- 1
Öffnen Sie in Yuva Einstellungen → Ihr Posteingang → Kanäle → E-Mail und fügen Sie die Support-Adresse hinzu. Setzen Sie auf dem Server ein Secret und starten Sie ihn neu:
YUVA_INGRESS_SECRET=<openssl rand -hex 32> YUVA_INGRESS_AUTHSERV_ID=mx.cloudflare.net
- 2
Deployen Sie den Worker in Ihr Cloudflare-Konto, mit demselben Secret:
cd edge bun install bunx wrangler login bunx wrangler secret put INGRESS_SECRET bunx wrangler deploy --var YUVA_URL:https://support.example.com
- 3
Öffnen Sie im Cloudflare-Dashboard Ihre Domain → Email → Email Routing und aktivieren Sie es. Cloudflare fügt seine MX- und SPF-Einträge hinzu.
- 4
Senden Sie unter Routing rules jede Support-Adresse an den Worker yuva-edge. Für einen Catch-all-Kanal richten Sie die Catch-all-Regel darauf.
- 5
Senden Sie eine Testnachricht und sehen Sie zu, wie die Konversation im Panel erscheint.
- 6
Optional: Behalten Sie Mail bei einem Ausfall, indem Sie dem Deploy-Befehl eine Ausweichadresse hinzufügen:
bunx wrangler deploy --var YUVA_URL:https://support.example.com --var FALLBACK_FORWARD:you@example.org
Email Routing wird der MX der Domain; verwenden Sie daher eine Domain oder Subdomain, die kein anderer Mailserver bedient.
Die Einrichtungsanleitung lesen →Nicht an Cloudflare gebunden
Der Worker ist nur ein Weg, /ingress/email aufzurufen. Jeder Mailserver oder jedes Relay kann die rohe Nachricht mit denselben signierten Headern senden, und ein Mailserver, der an einen Befehl zustellt, kann die Nachricht an yuva ingest-email übergeben. Das Anfrageformat ist in der README des Workers dokumentiert.
Fragen und Antworten
Muss ich einen Mailserver betreiben?
Für eingehende Mail nicht. Yuva lauscht nicht auf SMTP; Cloudflare Email Routing nimmt die Mail an, der Worker reicht sie weiter. Für Antworten braucht der E-Mail-Kanal ein SMTP-Konto, etwa Amazon SES, Postmark oder Ihr eigenes Relay.
Was passiert, wenn Yuva ausfällt?
Ist FALLBACK_FORWARD gesetzt, wird die Nachricht stattdessen an diese Adresse weitergeleitet. Ohne schlägt die Zustellung fehl, und der sendende Server versucht es womöglich erneut. Nachrichten, die Yuva absichtlich ablehnt, etwa Mail an eine unbekannte Adresse, werden abgewiesen, nicht weitergeleitet.
Welche Domains und Adressen kann ich verwenden?
Jede Domain, die Sie in Cloudflare verwalten und deren Mail kein anderer Server annimmt, denn Email Routing wird ihr MX. Jeder E-Mail-Kanal hat eine Adresse, oder den Catch-all *@example.com für alle Adressen der Domain, die kein Kanal genau hat. Eine Unteradresse wie support+billing@example.com erreicht den Kanal von support@example.com.
Wie groß darf eine Nachricht sein?
Eine Nachricht darf samt Anhängen bis zu 25 MiB groß sein; das ist das Limit von Cloudflare Email Routing. Yuva speichert bis zu 50 Anhänge pro Nachricht, jeweils innerhalb des Größenlimits des Servers (standardmäßig 25 MiB) und der erlaubten Typen; der Rest bleibt außen vor.
Kann jemand gefälschte Mails an meinen Yuva-Server schicken?
Yuva weist jede Anfrage ohne gültige HMAC-Signatur oder mit einem um mehr als 5 Minuten abweichenden Zeitstempel ab, bevor es den Body liest. Behalten Sie das Secret für sich.
Nutzt Yuva das DMARC-Ergebnis von Cloudflare?
Ja, wenn Sie YUVA_INGRESS_AUTHSERV_ID auf mx.cloudflare.net setzen. Yuva liest dann das DMARC-Urteil, das Email Routing hinzufügt. Eine neue Konversation, die DMARC nicht besteht, wird als Spam markiert.
Cloudflare, das Cloudflare-Logo und Cloudflare Workers sind Marken und/oder eingetragene Marken von Cloudflare, Inc. in den Vereinigten Staaten und anderen Ländern. Yuva ist ein unabhängiges Open-Source-Projekt und weder mit Cloudflare verbunden noch von Cloudflare empfohlen.