Leitfaden · Mailgun API
Wie sollte ein Produktteam die Mailgun API sicher implementieren?
Implementieren Sie die Mailgun API hinter einem autorisierten Server-Worker. Verifizieren Sie die exakte Absenderdomain, verwenden Sie die engste verfügbare API-Zugangsberechtigung, erstellen Sie einen dauerhaften internen Sende-Job und übermitteln Sie Multipart-Formulardaten an den domainbezogenen Messages-Endpunkt. Speichern Sie die von Mailgun zurückgegebene Nachrichtenkennung, authentifizieren Sie Webhook-Anfragen, bevor Sie sie verarbeiten, deduplizieren Sie Events und setzen Sie Bounces, Beschwerden und Abmeldungen zur Sendezeit durch. Halten Sie API-Annahme, Verarbeitung bei Mailgun, Zustellung an den empfangenden Server und Platzierung im Posteingang als getrennte Zustände auseinander.
Eine enge Produktoperation definieren, bevor Sie Mailgun aufrufen
Beginnen Sie mit einem freigegebenen Produktereignis wie Kontoverifizierung, Beleg, Sicherheitswarnung oder einer vom Empfänger angeforderten Benachrichtigung. Stellen Sie Mailgun hinter einen vertrauenswürdigen Anwendungsservice oder Queue-Worker, statt Browsern und Mobil-Clients eine Provider-Zugangsberechtigung oder ein beliebiges Nachrichtenformular zugänglich zu machen. Autorisieren Sie Aufrufer, Mandant, Absenderidentität, Empfänger, Nachrichtenklasse und Template, bevor Sie Provider-Felder erzeugen. Speichern Sie einen internen Ausgangsdatensatz mit stabilem Event-Schlüssel, Mandant, Template-Revision, freigegebenen Adressen und Anfangszustand. Dieser Datensatz ist das entscheidende System, Mailgun ist die Transportabhängigkeit. Die Trennung von Geschäftsabsicht und Provider-Payloads macht Wiederholungsversuche und Audits sicherer und hält eine spätere Provider-Migration möglich. Transaktionaler und einwilligungsabhängiger Traffic sollte im Datenmodell getrennt bleiben, damit Empfängerpräferenzen, Sperrlistenregeln und Reputationsvorfälle nicht zu einer informellen Template-Konvention werden.
Die exakte Absenderdomain und die DNS-Einträge verifizieren
Fügen Sie eine von der Organisation kontrollierte Domain hinzu und veröffentlichen Sie die DNS-Einträge, die Mailgun aktuell für Verifizierung, Authentifizierung, Tracking und die tatsächlich gewählten Empfangsfunktionen bereitstellt. Prüfen Sie bestehende SPF- und DMARC-Einträge, bevor Sie DNS ändern. Legen Sie an einem Hostnamen keinen zweiten SPF-Eintrag an und ersetzen Sie keine organisationsweite DMARC-Richtlinie ohne deren Verantwortlichen. Verifizieren Sie die tatsächlich von der Workload genutzte From- und Signaturidentität und nicht bloß eine benachbarte übergeordnete Domain. Nutzen Sie eine zweckgebundene Subdomain, wenn Zuständigkeit, Traffic-Trennung oder Migration es rechtfertigen. Prüfen Sie, nachdem Mailgun die Verifizierung meldet, an einer kontrolliert empfangenen Nachricht die sichtbare From-Adresse, die DKIM-Signaturdomain, den Return-Path, die Authentifizierungsergebnisse und das Antwortverhalten. Die Provider-Verifizierung belegt, dass die Einrichtungsprüfung bestanden wurde. Sie beweist weder Einwilligung der Empfänger noch Annahme durch das Ziel, Absenderreputation oder Platzierung im Posteingang. Bewahren Sie die Historie der DNS-Änderungen und Rollback-Anweisungen außerhalb des Provider-Dashboards auf.
Eingeschränkte Zugangsdaten und den richtigen regionalen Endpunkt verwenden
Mailgun dokumentiert HTTP Basic Authentication für seine APIs, mit API-Zugangsdaten, die sich nach Berechtigung und Zweck unterscheiden. Ein sendender Worker sollte nur die Zugangsdaten erhalten, die für die freigegebene Domain und Operation nötig sind. Halten Sie primäre Konto-Schlüssel, Domain-Sendeschlüssel, Webhook-Signaturmaterial und Zugangsdaten niedrigerer Umgebungen getrennt. Speichern Sie Geheimnisse direkt in einem verwalteten Secret Store und geben Sie sie nur dem Serverprozess, der sie braucht. Legen Sie Zugangsdaten niemals in Client-Code, Versionskontrolle, URLs, Logs, Analytics, Templates, Tickets oder Prompts ab. Wählen Sie die dokumentierte API-Basis-URL für die Region des Kontos, statt anzunehmen, dass jede Domain denselben Host nutzt. Proben Sie die Rotation: Erstellen Sie einen gleichwertig eingeschränkten Ersatz, aktualisieren Sie den Worker, prüfen Sie kontrollierten Traffic und Events und widerrufen Sie dann die alten Zugangsdaten. Lösen Sie Alarm bei unerwarteten Authentifizierungs- und Autorisierungsfehlern aus, denn sie können auf Widerruf, falsche Region, Scope-Drift oder Offenlegung hindeuten.
Eine dauerhafte Messages-API-Anfrage aufbauen
Der domainbezogene Messages-Endpunkt von Mailgun akzeptiert Multipart-Formularfelder für Absender, Empfänger, Betreff, Text- oder HTML-Inhalt und dokumentierte Optionen wie Templates, Anhänge, Header, Tags, Empfängervariablen, Tracking und geplante Zustellung. Machen Sie nur die Teilmenge verfügbar, die das Produkt braucht. Validieren Sie Adresssyntax und Mandantenzugehörigkeit, begrenzen Sie Empfänger- und Anhangzahlen, weisen Sie Newline-Injection ab und rendern Sie freigegebene Templates mit typisierten Variablen. Legen Sie keine Geheimnisse oder unnötigen personenbezogenen Daten in Tags, benutzerdefinierten Variablen oder Headern ab, denn Provider-Events und Aktivitätsansichten können Metadaten getrennt vom Nachrichteninhalt sichtbar machen. Senden Sie aus dem übernommenen internen Job und speichern Sie die von Mailgun zurückgegebene Nachrichtenkennung mit dem exakten Versuch. Halten Sie providerspezifische Optionsnamen in einem Adapter. Geschäftscode sollte ein schmales Ergebnis „angenommen“, „abgelehnt“ oder „unsicher“ erhalten und nicht jedes Mailgun-Feld und jede Fehlerform kennenlernen.
Wiederholungsversuche um Annahme und Mehrdeutigkeit herum entwerfen
Klassifizieren Sie Antworten, bevor Sie es erneut versuchen. Beheben Sie fehlerhafte Felder, nicht autorisierte Domains, ungültige Zugangsdaten, Berechtigungsfehler und permanente Richtlinienfehler, statt sie erneut abzuspielen. Wiederholen Sie infrage kommende Transportfehler, Provider-Serverfehler und ratenbegrenzte Anfragen mit exponentiellem Backoff, Jitter, endlicher Versuchszahl und Warteschlangenalter-Limits. Eine akzeptierte API-Antwort von Mailgun bedeutet, dass der Provider die Einlieferungsanfrage zur Verarbeitung angenommen hat. Sie beweist nicht, dass der Zielserver die Nachricht akzeptiert hat. Ein Client-Timeout ist mehrdeutig, denn Mailgun kann die Anfrage angenommen haben, obwohl der Worker die Antwort verpasst hat. Halten Sie diesen Job in einem unbekannten Zustand, suchen Sie nach den gespeicherten Korrelationsdaten oder späteren Events und wenden Sie eine bewusste Abgleichsregel an, bevor Sie erneut senden. Der Mailgun-Transport ersetzt nicht die Notwendigkeit eines stabilen Anwendungs-Event-Schlüssels, der Übernahme durch einen einzelnen Worker, des Versuchsverlaufs und von Kontrollen gegen Duplikate. Lösen Sie Alarm bei wiederholten Fehlern nach Zugangsdaten, Domain, Template, Mandant und Zielprovider aus.
Webhook-Anfragen authentifizieren, bevor Sie sie parsen
Konfigurieren Sie einen HTTPS-Webhook-Endpunkt und bewahren Sie exakt die Felder auf, die das Signaturverfahren von Mailgun verwendet. Mailgun dokumentiert einen Zeitstempel, ein Token und eine mit dem Webhook-Signaturschlüssel abgeleitete Signatur. Validieren Sie die Signatur mit einem Vergleich in konstanter Zeit und weisen Sie Zeitstempel außerhalb des Aktualitätsfensters der Anwendung ab, bevor Sie das Event annehmen. Verfolgen Sie Tokens oder Event-Kennungen nach Bedarf als Replay-Schutz. Halten Sie den Webhook-Signaturschlüssel getrennt von den Sende-Zugangsdaten und rotieren Sie ihn in einem getesteten Prozess. Wenden Sie Größenlimits für Anfragen an und vertrauen Sie URLs, Empfängern, Tags oder Event-Feldern nicht, nur weil der Body sich parsen lässt. Speichern oder queuen Sie das Event nach der Authentifizierung dauerhaft, bevor Sie Erfolg zurückgeben. So verwirft ein Prozessabsturz keine Zustellnachweise. Die Webhook-Verifizierung beweist Herkunft und Integrität unter dem konfigurierten Geheimnis. Sie beweist nicht, dass das Geschäftsereignis zum erwarteten Mandanten gehört, bis die Anwendung Domain und Provider-Nachrichtenkennungen korreliert.
Webhook-Wiederholungen und doppelte Events idempotent behandeln
Mailgun dokumentiert das Wiederholungsverhalten von Webhooks, wenn ein Endpunkt keine erwartete Erfolgsantwort liefert. Der Empfänger muss von verzögerter und wiederholter Zustellung ausgehen. Deduplizieren Sie über eine stabile Provider-Event-Kennung, falls vorhanden, oder über eine konservative Kombination, die verschiedene Empfänger oder Event-Typen nicht zusammenführen kann. Bewahren Sie den ursprünglichen Auftrittszeitpunkt und den Verarbeitungszeitpunkt getrennt auf. Gestalten Sie Zustandsübergänge monoton, damit eine ältere Beobachtung „accepted“ oder „delivered“ einen späteren permanenten Fehler, eine Beschwerde oder Abmeldung nicht löscht, nur weil Wiederholungen in falscher Reihenfolge eintreffen. Geben Sie Erfolg erst nach dauerhafter Erfassung zurück, halten Sie aufwendige Geschäftsverarbeitung aber asynchron, damit der Endpunkt zuverlässig bleibt. Überwachen Sie Signaturfehler, Antwortlatenz, Wiederholungsvolumen, Event-Verzögerung und Dead-Letter-Datensätze. Bewahren Sie rohe Provider-Payloads nur so lange auf, wie es betriebliche und richtlinienbezogene Anforderungen rechtfertigen, mit eingeschränktem Zugriff und Adressminimierung. Ein Webhook ist ein Nachweis-Feed und keine Erlaubnis, Empfängerhistorie mandantenübergreifend offenzulegen.
Mailgun-Events modellieren, ohne die Zustellung zu überzeichnen
Mailgun dokumentiert Event-Typen für accepted, delivered, temporäre und permanente Fehler, opened, clicked, unsubscribed, complained, stored und verwandte Verarbeitungsergebnisse. Bilden Sie diese Namen auf ein internes Modell ab und behalten Sie dabei Provider-Event-Typ, Nachrichtenkennung, Empfängerumfang, Zeitstempel, Schweregrad und die verfügbare SMTP-Antwort. „Accepted“ beschreibt die Annahme durch Mailgun oder den Fortschritt in der Warteschlange. „Delivered“ beschreibt die dokumentierte Zustellbeobachtung, üblicherweise die Annahme durch den Zielserver, verrät aber nicht den endgültigen Postfachordner. Opens und Klicks sind Engagement-Instrumentierung und kein Transportnachweis, und Datenschutztechnik kann sie beeinflussen. Temporäre Fehler können begrenzte Wiederholungen innerhalb des Transportsystems rechtfertigen. Permanente Fehler, Beschwerden und Abmeldungen müssen den Empfängerschutz-Zustand aktualisieren, bevor ein späterer Anwendungsjob eingeliefert wird. Führen Sie das Event-Ledger als Append-only und leiten Sie einen nutzersichtbaren Status über explizite Regeln ab, damit der Support Nachweis von Interpretation unterscheiden kann.
Fehler, Beschwerden und Abmeldungen zur Sendezeit durchsetzen
Mailgun dokumentiert das Tracking von Zustellfehlern, Spam-Beschwerden und Abmeldungen. Übernehmen Sie diese Signale in ein produkteigenes Empfängerschutz-Modell mit Mandant, Adresse, Nachrichtenklasse, Quell-Event, Grund und Wirksamkeitszeitpunkt. Prüfen Sie diesen Zustand unmittelbar vor jedem Versand und nicht nur beim Import einer Kampagnenliste. Ein permanenter Bounce oder eine Beschwerde sollte unsichere Wiederholungen für den zutreffenden Umfang stoppen. Die Abmeldebehandlung muss Nachrichtenklasse und aktuelle Empfänger- oder gesetzliche Anforderungen respektieren und sollte nicht routinemäßig über Provider-Optionen umgangen werden. Schützen Sie jede manuelle Entfernung mit starker Autorisierung, sichtbarem Grund und Audit-Verlauf. Die Sperrlistendaten des Providers sind wertvoller betrieblicher Nachweis, aber kein vollständiges Einwilligungs-Ledger. Bewahren Sie Einwilligungsquelle, Präferenzen, produktkritische Richtlinienentscheidungen und frühere Provider-Historie getrennt auf, damit eine Migration den Empfängerschutz nicht verliert. Testen Sie die Weitergabe von Sperren, doppelte Beschwerden, verzögerte Bounces und außergewöhnliche Reaktivierung mit kontrollierten Identitäten.
SendHQ als Mailgun-Alternative erwägen
SendHQ bietet transaktionale und einwilligungsbasierte Marketing-E-Mails mit Versand über verifizierte Domains, eingehenden E-Mails, Zustell-Events und Sperrlisten. Prüfen Sie vor der Migration die öffentliche API-Dokumentation und testen Sie Authentifizierung, Payloads, Fehler, Kennungen, Events, Domains und Workflows zur Empfängersicherheit.
Häufig gestellte Fragen
Über welchen Endpunkt wird E-Mail über die Mailgun API gesendet?
Mailgun dokumentiert einen domainbezogenen Endpunkt `POST /v3/{domain}/messages`, der Multipart-Formulardaten und HTTP Basic Authentication verwendet. Rufen Sie ihn nur aus autorisiertem serverseitigem Code auf.
Sollte ein Mailgun-API-Schlüssel in Browser-Code stehen?
Nein. Speichern Sie die engste geeignete Berechtigung in einem serverseitigen Secret Manager. Halten Sie Produktion, niedrigere Umgebungen, Kontoadministration, Domain-Versand und Webhook-Signierung getrennt.
Bedeutet die Annahme durch die Mailgun API, dass eine E-Mail zugestellt wurde?
Nein. Sie bedeutet, dass Mailgun die Einlieferung zur Verarbeitung angenommen hat. Authentifizierte Events können später Zustellung an den Zielserver oder Fehler melden, während die Platzierung im Posteingang ein separates Ergebnis auf Empfängerseite bleibt.
Wie sollten Mailgun-Webhooks authentifiziert werden?
Validieren Sie den dokumentierten Zeitstempel, das Token und die Signatur von Mailgun mit dem Webhook-Signaturschlüssel, bevor Sie verarbeiten. Wenden Sie Aktualitäts- und Replay-Kontrollen an und erfassen Sie das Event dauerhaft, bevor Sie es bestätigen.
Sollte jeder Fehler der Mailgun API wiederholt werden?
Nein. Korrigieren Sie Validierungs-, Authentifizierungs-, Domain-, Berechtigungs- und permanente Richtlinienfehler. Nutzen Sie begrenzten Backoff für infrage kommende vorübergehende Fehler und gleichen Sie mehrdeutige Timeouts ab, bevor Sie erneut senden.
Kann SendHQ Mailgun ersetzen?
Möglicherweise. SendHQ bietet transaktionale und einwilligungsbasierte Marketing-E-Mails mit Versand über verifizierte Domains, eingehenden E-Mails, Zustell-Events und Sperrlisten. Prüfen Sie die öffentliche API-Dokumentation und testen Sie Ihre Integration vor der Migration.
Quellen
- Mailgun Messages API — Mailgun
- Authentifizierung der Mailgun API — Mailgun
- Eine Mailgun-Domain verifizieren — Mailgun
- Mailgun-Event-Typen — Mailgun
- Mailgun-Webhooks absichern — Mailgun
- Wiederholungsversuche bei Mailgun-Webhooks — Mailgun
- Zustellfehler bei Mailgun nachverfolgen — Mailgun
- Spam-Beschwerden bei Mailgun nachverfolgen — Mailgun
- Abmeldungen bei Mailgun nachverfolgen — Mailgun
- RFC 5321: Simple Mail Transfer Protocol — RFC-Editor
- OpenAPI-Spezifikation von SendHQ — SendHQ