Resend oder Postmark: Welche Limits und Webhooks passen zu Ihrer Anwendung?

Von Mara Levin · Aktualisiert am 7. Oktober 2026 · Preise und Dokumentationen am selben Tag geprüft

Beide sind Versand-APIs für Transaktionsmails. Bei Resend steht die einfache Einbindung im Vordergrund, bei Postmark die Trennung von Nachrichtenströmen und eine längere Aufbewahrung. Dieser Vergleich liest vor allem die Grenzen heraus, an denen sich Architekturentscheidungen festmachen.

Die kurze Antwort

Wählen Sie Resend, wenn Ihr Team TypeScript schreibt, wiederholte Jobs ohne eigene Dublettenprüfung abfedern möchte (Idempotency-Key) und signierte Webhooks erwartet; bei 50.000 E-Mails im Monat zahlen Sie 20 $ für Pro. Wählen Sie Postmark, wenn Ihnen getrennte Transaktions- und Broadcast-Ströme, 45 Tage Datenaufbewahrung im Basic-Tarif und der Posteingang auf höheren Tarifen wichtiger sind als der niedrigste Monatspreis; dafür sichern Sie Webhooks selbst über Basic Auth und IP-Freigabe, und bei 50.000 E-Mails kostet Basic 55 $.

Was Sie bei sechs Volumen zahlen

E-Mails pro Monat Resend Postmark
3.000Free: 0 $ (3.000 E-Mails, 100 pro Tag)Free deckt 100 E-Mails; erster Bezahltarif ab 10.000 E-Mails: 15 $
10.000Pro: 20 $ (enthält 50.000)Basic 15 $, Pro 16,50 $, Platform 18 $
50.000Pro: 20 $Basic 55 $, Pro 60,50 $, Platform 66 $
100.000Pro: 35 $ (Regler); Scale: 90 $Kein Reglerstopp bei 100.000
125.000Kein Reglerstopp gelesenBasic 115 $, Pro 126,50 $, Platform 138 $
200.000Scale: 160 $ (Regler)Kein Reglerstopp bei 200.000

Quellen: resend.com/pricing und postmarkapp.com/pricing, abgelesen am 7. Oktober 2026. Beide Anbieter berechnen große Mengen über einen Regler mit festen Stopps; Resends Regler zeigt 3.000, 50.000, 100.000, 200.000 und mehr, der von Postmark 10.000, 50.000, 125.000 und 300.000 und mehr. Preise für Zwischenwerte sind nicht angegeben und werden hier nicht aus Überschreitungsraten hochgerechnet.

Resend-Preisseite mit Regler und den Tarifen Free, Pro, Scale, aufgenommen im Oktober 2026
Resend-Preisseite, Stand 7. Okt. 2026. Quelle: https://resend.com/pricing
Postmark-Preisseite mit Regler und den Tarifen Free, Basic, Pro, Platform, aufgenommen im Oktober 2026
Postmark-Preisseite, Stand 7. Okt. 2026. Quelle: https://postmarkapp.com/pricing

Die Preise richtig lesen

Der Abstand wirkt groß, hat aber eine Kehrseite. Auf der Resend-Seite hat der Free-Tarif eine Tagesgrenze von 100 E-Mails; die Nutzungsdoku ergänzt, dass die Tageskontingente nur für den Free-Tarif gelten und sich um Mitternacht UTC zurücksetzen. Ein Shop mit 3.000 Mails im Monat, die sich auf einen Schlussverkauf konzentrieren, stößt deshalb an die Tagesgrenze, obwohl die Monatssumme stimmt. Dazu kommt: Sowohl gesendete als auch empfangene E-Mails zählen zum Kontingent.

Bei Postmark steigen die Preise mit den Tarifen, nicht nur mit dem Volumen. Basic kostet 15 $ bei 10.000 E-Mails und enthält 5 Absenderdomains und 45 Tage Aufbewahrung. Pro (16,50 $ bei 10.000) ergänzt den Posteingang, bis zu 10 Domains und einstellbare Aufbewahrung bis 365 Tage; Platform (18 $) hat unbegrenzt viele Domains. Zusätze laufen separat: eine dedizierte IP kostet ab 50 $ im Monat je IP, für Versender ab 300.000 E-Mails im Monat auf Pro oder höher; die Überwachung von DMARC beginnt bei 14 $ im Monat je Domain; eine längere Aktivitätsaufbewahrung bei 5 $ im Monat. Bei Resend kosten weitere Domains 20 $ im Monat für 100 zusätzliche, und die dedizierte IP 30 $ im Monat für Kunden über 3.000 E-Mails am Tag im Scale-Tarif.

Ein Rechenbeispiel für ein Jahr bei 50.000 E-Mails im Monat: Resend Pro kostet 12 × 20 $ = 240 $, Postmark Basic 12 × 55 $ = 660 $. Die Differenz von 420 $ im Jahr muss man dem gegenüberstellen, was der teurere Dienst mitbringt: 45 statt 30 Tage Aufbewahrung, getrennte Ströme und im Pro-Tarif (60,50 $ bei 50.000) den Posteingang.

Limits, die Ihre Architektur bestimmen

Aus den API-Dokumentationen lassen sich die folgenden Werte ablesen. Sie sind kein Qualitätsurteil, aber sie entscheiden, wie Sie Warteschlangen, Anhänge und Wiederholungen bauen.

Thema Resend Postmark
Empfänger pro NachrichtHöchstens 50 im Feld toHöchstens 50 insgesamt (To, Cc und Bcc zusammen)
StapelversandBis zu 100 E-Mails je API-AufrufBis zu 500 Nachrichten und 50 MB je Aufruf
GrößeAnhänge höchstens 40 MB pro E-Mail nach Base64-KodierungText- und HTML-Teil je bis 5 MB, Gesamtnachricht bis 10 MB
WiederholungsschutzIdempotency-Key, 24 Stunden gespeichert, bis 256 ZeichenIn der Doku zum Senden nicht beschrieben; Dubletten selbst abfangen
Webhook-AbsicherungSigniert; Prüfung mit SDK oder SvixNicht signiert; Basic Auth und IP-Freigabe
Aufbewahrung der Daten30 Tage in Free, Pro und Scale45 Tage Standard; bis 365 Tage einstellbar ab Pro
Rate Limit der APIStandardmäßig 10 Anfragen pro Sekunde und TeamIn den gelesenen Seiten nicht genannt

Quellen: Resends Send-Email-Referenz, Nutzungslimits und Idempotency Keys; Postmarks Dokumentation zum Senden, gelesen am 7. Oktober 2026.

Der erste Versand im Code

Bei Resend übergeben Sie den Idempotency-Key als Option des SDK-Aufrufs; die Doku empfiehlt Schlüssel nach dem Muster Ereignistyp und Objekt-ID. Wiederholt Ihr Worker nach einem Timeout denselben Aufruf, liefert Resend innerhalb von 24 Stunden dieselbe Antwort, ohne die E-Mail ein zweites Mal zu verschicken. Das Beispiel folgt der Node.js-Anleitung und der Seite zu den Idempotency Keys:

import { Resend } from 'resend';

const resend = new Resend(process.env.RESEND_API_KEY);

const { data, error } = await resend.emails.send(
  {
    from: 'Acme <onboarding@resend.dev>',
    to: ['delivered@resend.dev'],
    subject: 'Ihre Bestellung 4812',
    html: '<p>Vielen Dank für Ihre Bestellung.</p>',
  },
  { idempotencyKey: 'bestellbestaetigung/4812' },
);

Bei Postmark gehört zu jedem Server ein eigenes Token, und die Absenderadresse muss als Absender-Signatur bestätigt sein, sonst antwortet die API mit HTTP 422. Zum Ausprobieren akzeptiert Postmark das Token POSTMARK_API_TEST: Die Anfrage wird geprüft, aber nichts zugestellt. Der Aufruf mit dem offiziellen SDK nach der Dokumentation zum Senden:

import { ServerClient } from "postmark";

const postmark = new ServerClient(process.env.POSTMARK_SERVER_TOKEN!);

const result = await postmark.sendEmail({
  From: "versand@acme.example",
  To: "kunde@example.com",
  Subject: "Ihre Bestellung 4812",
  TextBody: "Vielen Dank für Ihre Bestellung.",
  HtmlBody: "<html><body><strong>Vielen Dank</strong> für Ihre Bestellung.</body></html>",
  MessageStream: "outbound",
});

console.log({ messageId: result.MessageID });

Fehlt MessageStream, nutzt Postmark laut Dokumentation den Strom outbound, den Standardstrom für Transaktionsmails. Broadcast-Nachrichten lassen sich über denselben Parameter in einen eigenen Strom lenken, damit Newsletter und Passwort-Resets getrennt laufen.

Webhooks: signiert gegen abgesichert

Hier liegt der klarste Sicherheitsunterschied. Resend vergibt pro Endpunkt ein Signing Secret; die Doku verlangt, den rohen Request-Body zu verwenden, weil schon ein erneutes Serialisieren die Signatur zerstört, und zeigt die Prüfung mit resend.webhooks.verify sowie alternativ mit der Svix-Bibliothek. Der folgende Ausschnitt gibt die Form der Doku wieder:

export async function POST(req: NextRequest) {
  try {
    const payload = await req.text(); // roher Body, nicht als JSON geparst
    const result = resend.webhooks.verify({
      payload,
      headers: {
        id: req.headers['svix-id'],
        timestamp: req.headers['svix-timestamp'],
        signature: req.headers['svix-signature'],
      },
      webhookSecret: process.env.RESEND_WEBHOOK_SECRET,
    });
    // result enthält den geprüften Inhalt
  } catch {
    return new NextResponse('Invalid webhook', { status: 400 });
  }
}

Postmark hält fest, dass es HMAC-Signaturen nicht unterstützt, und empfiehlt Basic Auth in der URL, HTTPS und eine Firewall-Freigabe der Postmark-IP-Bereiche. Die Nutzlast sollten Sie zusätzlich auf erwartete Felder prüfen; die Beispielfunktion der Doku speichert außerdem jede MessageID und gibt bei Wiederholung "duplicate" zurück.

// Webhook-URL mit Basic Auth, wie in der Postmark-Doku beschrieben
https://<benutzer>:<passwort>@example.de/postmark-webhook

// Handler: Postmark signiert nicht, also Form prüfen und Dubletten abfangen
if (!event.RecordType || !event.MessageID) {
  throw new Error("Unexpected webhook payload");
}
const schonVerarbeitet = await db.webhookEvents.findOne({ messageId: event.MessageID });
if (schonVerarbeitet) return { status: "duplicate", messageId: event.MessageID };

Für ein Team mit Sicherheits-Checkliste, die signierte Webhooks fordert, ist das ein Ausschlusskriterium auf der einen oder anderen Seite. Wer ohnehin hinter einem API-Gateway mit IP-Filter arbeitet, kommt mit Postmarks Modell gut zurecht.

Vorlagen, React Email und Ströme

Resends Node.js-SDK nimmt laut der Next.js-Anleitung einen react-Parameter entgegen, dem Sie eine Komponente übergeben. React Email ist dabei nicht an Resend gebunden; die Dokumentation von React Email beschreibt auch Postmark, SendGrid, Mailgun und weitere Dienste, und bei Postmark rendern Sie die Komponente zuerst zu HTML. Alternativ nutzt Postmark gespeicherte Vorlagen: sendEmailWithTemplate mit TemplateAlias und TemplateModel. Wie sich beide Wege auf die Wahl des Template-Werkzeugs auswirken, steht im Vergleich MJML und React Email.

Zum Thema Ströme: Postmark ordnet jede Nachricht einem Strom zu (ohne Angabe dem Standardstrom outbound) und trennt Transaktions- und Broadcast-Verkehr. Resend trennt in seiner Preisseite die Reiter für Transaktions- und Marketing-E-Mails und rechnet Marketing nach Kontakten ab (zum Beispiel 40 $ bei 5.000 Kontakten laut dem Marketing-Reiter); wer beides über einen Anbieter betreibt, sollte die zwei Rechnungen getrennt betrachten.

Wann welcher Dienst

Resend passt, wenn…

  • Ihre Jobs wiederholt werden können und Sie keine eigene Tabelle der versendeten Ereignisse pflegen möchten.
  • Webhooks signiert ankommen sollen, damit die Prüfung im Handler wenige Zeilen braucht.
  • Ihr Volumen zwischen 3.000 und 100.000 E-Mails liegt und der monatliche Preis für Sie den Ausschlag gibt.

Postmark passt, wenn…

  • Transaktions- und Broadcast-Verkehr strikt getrennt laufen sollen und Sie 45 Tage Aufbewahrung ab dem Basic-Tarif schätzen.
  • Sie den Posteingang als Teil des Dienstes nutzen und den Pro-Tarif ohnehin brauchen.
  • Ihre Infrastruktur Basic Auth und IP-Listen ohnehin durchsetzt.

Wechsel in beide Richtungen

Beginnen Sie mit den DNS-Einträgen für die neue Absenderdomain und lassen Sie den alten Dienst parallel laufen, damit sich die Reputation aufbauen kann. Danach übertragen Sie die Vorlagen: Resend nimmt Variablen im Objekt variables, Postmark ein TemplateModel. Erst dann stellen Sie die Webhooks um, also Signaturprüfung bei Resend oder Basic Auth und IP-Regeln bei Postmark, und importieren Sperrlisten, bevor die erste Produktionsmail rausgeht. Wer zusätzlich SendGrid erwägt, findet den Dritten im Bunde im Vergleich Postmark gegen SendGrid; Loops als Lifecycle-Plattform behandelt Loops gegen Resend.

Häufige Fragen

Welcher Dienst ist günstiger, Resend oder Postmark?

Wo beide Anbieter einen Preis zeigen, ist Resend niedriger: bei 50.000 E-Mails im Monat 20 $ für Pro gegen 55 $ für Postmark Basic, das sind 35 $ Unterschied im Monat oder 420 $ im Jahr (12 × 35 $). Die Tarife enthalten aber nicht dasselbe, und die Regler haben unterschiedliche Stopps: Resend zeigt 35 $ bei 100.000 E-Mails, Postmark erst bei 125.000 wieder einen Preis, nämlich 115 $ für Basic. Vergleichen Sie beide Regler mit Ihrem eigenen Volumen.

Wie schütze ich die Webhook-URL bei Postmark?

Die Postmark-Dokumentation sagt ausdrücklich, dass Webhooks nicht signiert werden. Empfohlen werden HTTP Basic Auth (Benutzer und Passwort in der URL, möglichst über HTTPS) in Kombination mit einer Freigabe der Postmark-IP-Bereiche in der Firewall; zusätzlich sollten Sie die Struktur der Nutzlast prüfen. Resend arbeitet dagegen mit einem Signing Secret und prüft Anfragen über sein SDK oder die Svix-Bibliothek.

Zählen eingehende E-Mails bei Resend zum Kontingent?

Ja. Die Seite zu den Nutzungslimits sagt, dass gesendete und empfangene E-Mails auf die Kontingente angerechnet werden. Wer Antworten oder Bounces über Resend empfängt, sollte das in die Rechnung für die 3.000 E-Mails im Free-Tarif oder die 50.000 im Pro-Tarif einrechnen.

Was passiert bei einem Retry meines Jobs, wenn ich Postmark nutze?

Die gelesene Postmark-Dokumentation beschreibt keinen Idempotency-Key für den Versand. Wenn Ihre Warteschlange fehlgeschlagene Jobs wiederholt, brauchen Sie eine eigene Tabelle der bereits versendeten Ereignisse, etwa mit der Bestellnummer als Schlüssel. Bei Resend genügt der Idempotency-Key, den der Dienst 24 Stunden lang merkt.