Von Resend umsteigen
letr.dev als Alternative zu Resend, mit API-Keys, DNS-Einträgen, Webhook-Ereignissen, SMTP-Einstellungen und Sperrliste für den Wechsel im Vergleich.
Für eine App, die ihre Anmeldecodes, Quittungen und Links zum Zurücksetzen des Passworts über Resend versendet. letr.dev übernimmt diesen Teil. Es versendet keine Newsletter und Kampagnen und speichert keine Vorlagen.
letr.dev kostet CHF 12 im Monat für 10'000 Empfänger, danach CHF 0.50 pro angebrochene 1'000 Empfänger, bis zu einer Monatsobergrenze von 10'000 oder 25'000 Empfängern, die Sie wählen; für mehr kann letr.dev eine höhere Obergrenze gewähren (Limiten). letr.dev zählt pro Empfänger: Eine E-Mail an drei Personen zählt dreifach (Mehrverbrauch).
Schritte
- Registrieren Sie sich. Das Konto geht mit der Zahlung live und beginnt auf Stufe 0 mit 50 Empfängern pro Tag (Tageslimite).
- Fügen Sie Ihre Absenderdomain hinzu und publizieren Sie den DKIM-Eintrag von letr.dev neben den Einträgen von Resend.
- Erstellen Sie pro App einen API-Key.
- Erstellen Sie einen Webhook-Endpunkt für die Ereignisse, die Sie nutzen.
- Importieren Sie die gesperrten Adressen aus Resend.
- Stellen Sie die App auf die API oder das SMTP-Relay von letr.dev um.
- Entfernen Sie die Einträge von Resend, sobald Resend nichts mehr von der Domain versendet.
API-Keys
| Resend | letr.dev |
|---|---|
full_access |
sending_access, die geringste Berechtigung, die eine versendende App braucht; full_access nur für den einmaligen Import der Sperrliste |
sending_access, wahlweise auf eine Domain beschränkt |
sending_access, wahlweise auf einige Ihrer Domains beschränkt |
| Keine Entsprechung | read_only: jedes GET unter /v1 |
Quelle: die Referenz Create API key von Resend, 01.11.2026; bei letr.dev die Berechtigungen.
DNS-Einträge
letr.dev braucht einen TXT-Eintrag für DKIM unter letr._domainkey und empfiehlt DMARC. Bounces gehen an bounces.letr.dev, Ihr SPF-Eintrag bleibt also, wie er ist (DNS-Einträge). Die Einträge von Resend liegen auf der Return-Path-Subdomain, standardmässig send; die Namen unten gelten relativ zu Ihrer Domain.
| Eintrag von Resend | Mit letr.dev |
|---|---|
MX send, auf feedback-smtp.us-east-1.amazonses.com (der Regionsteil variiert) |
Nicht nötig |
TXT send, v=spf1 include:amazonses.com ~all |
Nicht nötig |
CNAME-Einträge auf der Return-Path-Subdomain und ihrer Schwester mit r, wo Resend stattdessen CNAMEs zeigt |
Nicht nötig |
TXT resend._domainkey (DKIM) |
Ersetzt durch TXT letr._domainkey |
TXT _dmarc |
Behalten: Ein Eintrag, der mit v=DMARC1 beginnt, zählt |
Die Selektoren unterscheiden sich, beide DKIM-Einträge können während des Wechsels also nebeneinander stehen. Entfernen Sie die von Resend, sobald deren letzte E-Mails draussen sind. Quelle: die Anleitungen von Resend Add a domain, Cloudflare und Custom Return Path, 01.11.2026.
Webhook-Ereignisse
Die meisten Ereignisse heissen gleich.
| Ereignis bei Resend | Ereignis bei letr.dev |
|---|---|
email.sent |
email.sent, wenn der Mailserver von letr.dev die E-Mail zur Zustellung angenommen hat; bei Resend, wenn der API-Aufruf gelungen ist |
email.delivered |
email.delivered |
email.delivery_delayed |
email.deferred |
email.bounced |
email.bounced |
email.complained |
email.complained |
email.failed |
email.failed; Fehler bei Key, Domain und Kontingent beantwortet letr.dev stattdessen sofort in der Antwort der API |
email.suppressed |
Keines: letr.dev lehnt einen Versand an eine gesperrte Adresse sofort ab, mit Status 422 |
email.opened, email.clicked |
Keines: letr.dev verfolgt weder Öffnungen noch Klicks |
email.scheduled |
Keines: letr.dev versendet geplante E-Mails ohne Ereignis für das Planen |
email.received, suppression.*, contact.*, domain.* und Ereignisse zu Topics |
Keines |
letr.dev signiert jedes Ereignis mit dem eigenen Secret des Endpunkts; prüfen Sie die Signatur, bevor Sie ihm trauen. Quelle: die Ereignistypen von Resend, 01.11.2026.
SMTP
Resend nutzt den Host smtp.resend.com auf Port 465 oder 2465 mit implizitem TLS oder 25, 587 oder 2587 mit STARTTLS, den Benutzernamen resend und einen API-Key. letr.dev nutzt:
| Einstellung | Wert |
|---|---|
| Host | smtp.letr.dev |
| Port | 465 mit implizitem TLS oder 587 mit STARTTLS (Pflicht) |
| Benutzername | letr |
| Passwort | Ein API-Key mit sending_access |
Die SMTP-Anleitung zeigt die Einstellungen für jedes Framework. Quelle: die SMTP-Anleitung von Resend, 01.11.2026.
Sperrliste
Auf der Seite Suppressions von Resend exportiert Download CSV Ihre gesperrten Adressen, ob sie aus einem Bounce, einer Beschwerde oder Ihrem eigenen Eintrag stammen (Suppressions, 01.11.2026). letr.dev liest von jeder Zeile nur die erste Spalte. Stellen Sie sicher, dass die E-Mail-Adresse die erste Spalte ist, und erstellen Sie dann im Dashboard einen Key mit full_access nur für den Import und importieren Sie die Datei damit:
curl https://api.letr.dev/v1/suppressions/import \
-H "Authorization: Bearer $LETR_API_KEY" \
-H "Content-Type: text/csv" \
--data-binary @suppressions.csv
Ein Import umfasst höchstens 10'000 Zeilen und 1 MB; teilen Sie grössere Dateien auf. Importierte Adressen erhalten den Grund manual (Liste importieren). Widerrufen Sie diesen Key nach dem Import im Dashboard; ein widerrufener Key funktioniert sofort nicht mehr. Die App behält ihren Key mit sending_access.
Was letr.dev nicht macht
- Newsletter und Kampagnen: letr.dev versendet nur transaktionale E-Mails.
- Vorlagen: Ihre App erstellt die E-Mail und sendet das fertige
htmlundtext. - E-Mails empfangen, Kontakte und Topics.
- Verfolgen von Öffnungen und Klicks.