Zum Inhalt springen

Postmark

Postmark konzentriert sich ausschließlich auf Transaktions-E-Mails und ist für schnelle, zuverlässige Zustellung in den Posteingang bekannt. Transaktions- und Massenversand trennt Postmark in Message Streams, sodass die Reputation Ihrer wichtigen E-Mails geschützt bleibt.

Wählen Sie Postmark, wenn Zustellbarkeit und Geschwindigkeit von Transaktions-E-Mails (Passwort-Zurücksetzung, Belege, Formularbestätigungen) für Sie an erster Stelle stehen und es Sie nicht stört, dass Postmark neue Konten prüft, bevor sie uneingeschränkt senden dürfen. Kaltakquise und gekaufte Adresslisten erlaubt Postmark nicht. Alternativen finden Sie in der Übersicht der E-Mail-Dienste.

  • Ein Postmark-Konto und ein Server (so nennt Postmark ein Projekt), z. B. „Website“.
  • Ein verifizierter Absender: entweder eine Sender Signature für eine einzelne Adresse oder – besser – eine verifizierte Domain (Sender Signatures → Add Domain or Signature).
  • Die Freigabe des Kontos, bevor Sie an Empfänger außerhalb Ihrer eigenen Domain senden – siehe Sandbox & Limits.
  • Das Server API token dieses Servers (Servers → Ihr Server → API Tokens). Ein Server-Token kann nur senden und die Daten des eigenen Servers lesen – das ist die Variante mit den geringsten Rechten. Verwenden Sie nicht das Account API token.
  1. Öffnen Sie E-Mail-Dienste → Dienst hinzufügen → Postmark.
  2. Füllen Sie die Felder aus:
Feld Wo Sie es finden Beispiel
Server-API-Token Servers → Ihr Server → API Tokens a1b2c3d4-e5f6-7890-abcd-ef1234567890
Message stream Servers → Ihr Server → Message Streams; verwenden Sie einen Stream vom Typ Transactional outbound
Webhook-Benutzername Optional – der Benutzername für Basic Auth, den Sie beim Webhook in Postmark festlegen frontmail
Webhook-Passwort Optional – das zugehörige Passwort langes-zufaelliges-passwort
Max. E-Mails pro Sekunde Optional; Standard 10/s 10
  1. Klicken Sie auf Prüfen & speichern – Frontmail liest mit dem Token die Serverdaten aus.
  2. Ist die Prüfung erfolgreich, wird der Dienst gespeichert. Zugangsdaten werden mit AWS KMS per Envelope-Verschlüsselung verschlüsselt.

Nachdem Sie eine Domain hinzugefügt haben, zeigt Postmark zwei Einträge an, die Sie veröffentlichen müssen:

; DKIM – der Selektor enthält einen datumsbasierten Teil, kopieren Sie ihn aus Postmark
20240101123456pm._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN…"
; Eigener Return-Path – damit ist SPF an Ihre Domain ausgerichtet
pm-bounces.example.com. CNAME pm.mtasv.net.
; DMARC – zunächst nur überwachen
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
  • Der DKIM-Host hat die Form <Zeitstempel>pm._domainkey; kopieren Sie den Wert immer exakt aus Postmark.
  • Mit dem Return-Path-CNAME auf pm.mtasv.net müssen Sie Postmark nicht in den SPF-Eintrag Ihrer Hauptdomain aufnehmen – SPF wird auf der Return-Path-Subdomain geprüft, die Postmark verwaltet.
  • Klicken Sie in Postmark neben jedem Eintrag auf Verify. Sobald die DMARC-Berichte sauber sind, verschärfen Sie auf p=quarantine / p=reject.

Postmark hat einen einzigen API-Endpunkt (api.postmarkapp.com); eine Region wählen Sie nicht aus. Die Daten werden in den USA verarbeitet – wenn Ihnen eine Datenhaltung in der EU wichtig ist, prüfen Sie den AVV (DPA) von Postmark.

  • Warten auf Freigabe: Ein neues Konto darf nur an Adressen auf derselben Domain wie der verifizierte Absender senden, bis Postmark es freigibt. Andere Versuche schlagen mit dem Fehlercode 412 fehl. Beantragen Sie die Freigabe im Postmark-Dashboard; sie wird meist innerhalb eines Werktags bearbeitet.
  • Testmodus: Das spezielle Token POSTMARK_API_TEST nimmt Nachrichten an, ohne sie zu versenden – praktisch für lokale Tests. Verbindung testen in Frontmail lehnt es jedoch ab, weil kein Server dahintersteht.
  • Kostenloser Entwickler-Tarif: 100 E-Mails pro Monat.
  • Postmark führt pro Stream eine eigene Liste inaktiver Empfänger (Hard Bounces, Beschwerden); Sendungen an diese Adressen schlagen mit dem Code 406 fehl.

Webhooks werden in Postmark pro Message Stream eingerichtet.

  1. Kopieren Sie die Webhook-URL auf der Seite des Dienstes in Frontmail (Kopier-Schaltfläche):

    https://api.frontmail.dev/webhooks/providers/postmark/<token>
  2. Öffnen Sie in Postmark Servers → Ihr Server → den Stream (z. B. Default Transactional Stream) → Webhooks → Add webhook, fügen Sie die URL ein und wählen Sie die Ereignisse aus:

Postmark-Ereignis Frontmail-Ereignis
Delivery delivered
Bounce – hart (HardBounce, BadEmailAddress, ManuallyDeactivated) bounced – wird auf die Sperrliste gesetzt
Bounce – weich/vorübergehend (SoftBounce, Transient, DnsError) wird bei der Nachricht protokolliert
Spam Complaint complained – wird auf die Sperrliste gesetzt
Open opened (Öffnungs-Tracking am Stream aktivieren)
Link Click clicked (Link-Tracking am Stream aktivieren)
  1. Schützen Sie den Webhook mit Basic Auth (empfohlen): Füllen Sie im Webhook-Formular die Basic auth credentials aus (Benutzername + langes zufälliges Passwort) und tragen Sie dieselben Werte in Frontmail in die Felder Webhook-Benutzername / Webhook-Passwort ein.

Signaturprüfung: Postmark signiert Webhook-Daten nicht. Der geheime Token in der URL identifiziert den Dienst, und wenn Sie ein Webhook-Passwort festlegen, lehnt Frontmail jede Anfrage ohne passende Basic-Auth-Zugangsdaten ab. Testen können Sie das mit der Schaltfläche Send test in Postmark.

Frontmail fügt jeder Nachricht den Header X-Frontmail-Message-Id hinzu, damit Ereignisse der richtigen Nachricht zugeordnet werden.

  • auth – der Dienst funktioniert nicht (ungültiges Token, unbestätigter Absender, Konto nicht freigegeben, unbekannter Stream). Der Dienst wird als unhealthy markiert; der Inhaber erhält eine E-Mail und einen Hinweis im Dashboard. Ein Ersatzdienst der Vorlage übernimmt; ohne ihn wird der Credit erstattet und die Nachricht wartet als held_service_error in der Warteschlange zurückgehaltener E-Mails. Sie wird automatisch gesendet, sobald Sie den Dienst reparieren (geprüft beim Speichern und bei der täglichen Statusprüfung).
  • permanent – genau diese Nachricht lässt sich nicht senden (ungültiger oder inaktiver Empfänger, Validierungsfehler). Ersatzdienst, falls eingerichtet, sonst failed und Erstattung des Credits.
  • transient – 5xx, Timeouts, 429. Wiederholung mit exponentiellem Backoff; wenn alle Versuche aufgebraucht sind, failed und Erstattung.
Postmark-Fehler Klasse Was tun
10 – fehlendes oder falsches Server API token (HTTP 401) auth Kopieren Sie erneut das Server-Token (nicht das Account-Token).
400 – für die Absenderadresse ist keine Sender Signature definiert auth Verifizieren Sie die Absender-Domain bzw. -Adresse unter Sender Signatures oder ändern Sie den Absender der Vorlage.
401 – Sender Signature nicht bestätigt auth Klicken Sie auf den Bestätigungslink, den Postmark an die Absenderadresse geschickt hat.
412 – Konto wartet auf Freigabe, Empfänger auf Ihre Domain beschränkt auth Beantragen Sie in Postmark die Freigabe des Kontos.
1235 – Message Stream nicht gefunden auth Korrigieren Sie die ID im Feld Message stream (z. B. outbound).
406 – inaktiver Empfänger permanent Die Adresse hat früher einen Bounce oder eine Beschwerde ausgelöst; Postmark sperrt sie. Reaktivieren Sie sie in Postmark nur, wenn Sie sich sicher sind.
300 / 422 – ungültige Anfrage / ungültige Adresse permanent Siehe ungültiger Empfänger.
HTTP 429 / 500 / 503 transient Rate Limit oder Ausfall – Frontmail wiederholt automatisch.
  • Domain in Postmark verifiziert (DKIM-TXT + Return-Path-CNAME pm.mtasv.net)
  • DMARC-Eintrag veröffentlicht, zunächst mit p=none
  • Konto von Postmark freigegeben
  • Server-API-Token (nicht Account-Token) eingetragen
  • Message Stream = Transaktions-Stream (outbound)
  • Verbindung testen erfolgreich
  • Webhook am Stream mit Delivery, Bounce, Spam Complaint (+ Open/Click)
  • Basic Auth am Webhook, dieselben Zugangsdaten in Frontmail