Resend
Resend ist eine moderne, auf Entwickler ausgerichtete E-Mail-API mit einem übersichtlichen Dashboard und schneller Domain-Einrichtung. Sie passt hervorragend zu neuen Projekten, die transaktionale E-Mails in wenigen Minuten zum Laufen bringen wollen.
Wählen Sie Resend, wenn Sie ein neues Projekt starten, schlanke Werkzeuge mögen und geringe bis mittlere transaktionale Volumen senden. Der kostenlose Tarif ist klein, reicht aber für die meisten Kontaktformulare. Für sehr hohe Volumen zum niedrigsten Preis sehen Sie sich Amazon SES an; für Marketing und transaktionale E-Mails mit Hosting in der EU Brevo oder Mailjet. Siehe die Übersicht der E-Mail-Dienste.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Ein Resend-Konto.
- Eine verifizierte Domain (Domains → Add domain). Ohne sie können Sie nur Test-E-Mails von
onboarding@resend.devan die Adresse Ihres eigenen Kontos senden – siehe Sandbox & Limits. - Einen API-Schlüssel mit „Sending access“ (nicht „Full access“): API Keys → Create API key → Permission: Sending access, optional auf eine einzelne Domain beschränkt. Das ist die minimale Berechtigung, die Frontmail braucht. Verbindung testen erkennt einen Schlüssel, der nur senden darf, und akzeptiert ihn.
In Frontmail verbinden
Abschnitt betitelt „In Frontmail verbinden“- Öffnen Sie E-Mail-Dienste → Dienst hinzufügen → Resend.
- Füllen Sie die Felder aus:
| Feld | Wo Sie es finden | Beispiel |
|---|---|---|
| API-Schlüssel | API Keys (wird nur einmal angezeigt) | re_123abc456def… |
| Webhook-Signaturschlüssel | Webhooks → Ihr Endpunkt → Signing secret | whsec_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| Max. E-Mails pro Sekunde | Optional; Standard 2/s (das Standard-Team-Limit von Resend) | 2 |
- Klicken Sie auf Prüfen & speichern.
- Der Dienst wird gespeichert, sobald die Prüfung erfolgreich ist. Die Zugangsdaten werden mit AWS KMS per Envelope-Verschlüsselung verschlüsselt.
DNS: SPF, DKIM und DMARC
Abschnitt betitelt „DNS: SPF, DKIM und DMARC“Resend zeigt die Einträge auf der Seite der Domain an. Für example.com sehen sie so aus:
; DKIMresend._domainkey.example.com. TXT "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ…"
; SPF + Bounce-Verarbeitung auf der Subdomain "send" (der Envelope-Absender)send.example.com. MX 10 feedback-smtp.us-east-1.amazonses.com.send.example.com. TXT "v=spf1 include:amazonses.com ~all"
; DMARC (von Resend empfohlen, wird nicht automatisch angelegt)_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"- Die Subdomain
sendträgt den SPF-Eintrag, sodass Sie den SPF-Eintrag Ihrer Hauptdomain nicht anfassen müssen. - Der MX-Host enthält die Region, die Sie für die Domain gewählt haben (
us-east-1,eu-west-1, …). - Manche DNS-Anbieter hängen die Domain automatisch an – tragen Sie als Hostnamen
resend._domainkeyundsendein, nicht die vollständigen Namen. - Beginnen Sie DMARC mit
p=noneund verschärfen Sie dann aufp=quarantine/p=reject.
Regionen
Abschnitt betitelt „Regionen“Beim Hinzufügen einer Domain können Sie in Resend deren Versandregion wählen – z. B. North Virginia (us-east-1), Irland (eu-west-1), São Paulo (sa-east-1) oder Tokio (ap-northeast-1). Der API-Endpunkt (api.resend.com) ist für alle Regionen derselbe, daher gibt es in Frontmail kein Feld für die Region; die Region ist eine Eigenschaft der Domain. Um sie zu ändern, fügen Sie die Domain mit der neuen Region erneut hinzu und passen das DNS an.
Sandbox & Limits
Abschnitt betitelt „Sandbox & Limits“- Ohne verifizierte Domain können Sie nur von
onboarding@resend.devund nur an die E-Mail-Adresse Ihres Resend-Kontos senden. Alles andere schlägt mit403 – You can only send testing emails to your own email addressfehl, was Frontmail als auth-Fehler behandelt. - Kostenloser Tarif: 3.000 E-Mails pro Monat, 100 pro Tag, 1 Domain.
- Rate Limit: standardmäßig 2 Anfragen pro Sekunde pro Team; der Standardwert von Frontmail für Resend ist daher 2/s. Resend kann das Limit auf Anfrage erhöhen.
- Wird das Tages- oder Monatskontingent überschritten, antwortet Resend mit
429 daily_quota_exceeded/monthly_quota_exceeded; Wiederholungen helfen erst nach dem Zurücksetzen des Kontingents. Solche Nachrichten enden daher meist alsfailed, und der Credit wird erstattet.
Webhooks (Zustellverfolgung)
Abschnitt betitelt „Webhooks (Zustellverfolgung)“-
Kopieren Sie die Webhook-URL von der Seite des Dienstes in Frontmail (Kopier-Schaltfläche):
https://api.frontmail.dev/webhooks/providers/resend/<token> -
Öffnen Sie in Resend Webhooks → Add endpoint, fügen Sie die URL ein und wählen Sie die Ereignisse aus:
| Resend-Ereignis | Frontmail-Ereignis |
|---|---|
email.delivered |
delivered |
email.bounced (Permanent) |
bounced – wird auf die Sperrliste gesetzt |
email.bounced (Transient / sonstige) |
als Soft Bounce erfasst |
email.delivery_delayed |
an der Nachricht vermerkt |
email.complained |
complained – wird auf die Sperrliste gesetzt |
email.opened |
opened (Öffnungsverfolgung für die Domain aktivieren) |
email.clicked |
clicked (Klickverfolgung für die Domain aktivieren) |
- Öffnen Sie den Endpunkt, kopieren Sie das Signing secret (
whsec_…) und fügen Sie es in Frontmail in das Feld Webhook-Signaturschlüssel ein.
Signaturprüfung: Resend liefert Webhooks über Svix aus. Frontmail prüft die Header svix-id, svix-timestamp und svix-signature: HMAC-SHA256 über id.timestamp.body mit Ihrem Signaturschlüssel. Anfragen, deren Zeitstempel mehr als 5 Minuten abweicht, werden abgelehnt. Ohne den Schlüssel werden Ereignisse nicht verifiziert und ignoriert.
Frontmail versieht jede E-Mail mit einem Tag, das seine Nachrichten-ID enthält, damit sich Ereignisse zuordnen lassen.
Häufige Fehler
Abschnitt betitelt „Häufige Fehler“- auth – der Dienst funktioniert nicht (ungültiger oder gelöschter Schlüssel, nicht verifizierte Domain, Einschränkungen des Testmodus, 401/403). Der Dienst wird als
unhealthymarkiert; der Inhaber erhält eine E-Mail und ein Banner im Dashboard. Der Ersatzdienst der Vorlage übernimmt; andernfalls wird der Credit erstattet und die Nachricht wartet alsheld_service_errorin der Warteschlange zurückgehaltener E-Mails und wird automatisch gesendet, sobald Sie den Dienst repariert haben (geprüft beim Speichern und bei der täglichen Statusprüfung). - permanent – genau diese Nachricht kann nicht gesendet werden (ungültiger Empfänger, Validierungsfehler 422). Ersatzdienst, falls eingerichtet, sonst
failedund Erstattung. - transient – 5xx, 429, Timeouts. Wiederholung mit exponentiellem Backoff; nach dem letzten Versuch
failedund Erstattung.
| Antwort von Resend | Klasse | Was zu tun ist |
|---|---|---|
401 missing_api_key / 403 invalid_api_key |
auth | Erstellen Sie einen neuen Schlüssel mit Sending access und aktualisieren Sie den Dienst. |
403 validation_error – The example.com domain is not verified |
auth | Schließen Sie die Domain-Verifizierung in Resend ab oder korrigieren Sie die Absenderdomain in der Vorlage. |
403 validation_error – You can only send testing emails to your own email address |
auth | Verifizieren Sie Ihre eigene Domain; der Testabsender resend.dev ist nur für Ihren eigenen Posteingang gedacht. |
422 validation_error – Invalid to field |
permanent | Siehe ungültiger Empfänger. |
422 invalid_attachment / 422 validation_error (andere Felder) |
permanent | Korrigieren Sie die Vorlage oder den Anhang; siehe HTML-Vorlagen. |
429 rate_limit_exceeded |
transient | Zu viele Anfragen pro Sekunde; lassen Sie Max. E-Mails pro Sekunde bei 2 oder bitten Sie Resend um mehr. |
429 daily_quota_exceeded / monthly_quota_exceeded |
transient | Kontingent aufgebraucht; wechseln Sie in einen höheren Tarif. |
500 internal_server_error, Timeout |
transient | Störung bei Resend – Frontmail wiederholt den Versand. |
Checkliste
Abschnitt betitelt „Checkliste“- Domain verifiziert:
resend._domainkeyTXT +sendMX und TXT - DMARC-Eintrag veröffentlicht (zu Beginn
p=none) - API-Schlüssel nur mit Sending access
- Verbindung testen erfolgreich
- Absenderadresse in der Vorlage auf der verifizierten Domain (nicht
resend.dev) - Webhook-Endpunkt mit delivered, bounced, complained (+ opened/clicked)
- Signing secret (
whsec_…) in Frontmail eingefügt