Zum Inhalt springen

Brevo

Brevo (ehemals Sendinblue) ist eine französische All-in-one-Marketingplattform – Newsletter, SMS, CRM – mit integrierter API für Transaktions-E-Mails. Die Daten liegen in der EU, und der kostenlose Tarif erlaubt einige hundert E-Mails pro Tag.

Wählen Sie Brevo, wenn Sie es bereits für Newsletter oder CRM nutzen und alles an einem Ort haben möchten, oder wenn Sie einen Anbieter mit Hosting in der EU und großzügigem täglichem Gratiskontingent suchen. Wenn Sie nur Transaktions-E-Mails mit bestmöglicher Zustellbarkeit brauchen, vergleichen Sie mit Postmark oder Mailgun in der Übersicht der E-Mail-Dienste.

  • Ein Brevo-Konto mit aktiviertem Transaktionsversand. Neue Konten werden manchmal erst geprüft, bevor sie Transaktions-E-Mails senden dürfen.
  • Ein verifizierter Absender: Fügen Sie Ihre Domain unter Senders, Domains & Dedicated IPs → Domains hinzu, authentifizieren Sie sie und legen Sie die Absenderadresse unter Senders an.
  • Ein v3-API-Schlüssel unter SMTP & API → API keys → Generate a new API key (beginnt mit xkeysib-). Brevo-API-Schlüssel lassen sich nicht einschränken – erstellen Sie einen eigenen Schlüssel, z. B. mit dem Namen „Frontmail“, damit Sie ihn unabhängig widerrufen können. Verwenden Sie nicht den SMTP-Schlüssel (xsmtpsib-…); Frontmail nutzt die HTTP-API.
  • Wenn für Ihr Konto Authorised IPs (Sicherheitseinstellungen) aktiviert ist, deaktivieren Sie die Funktion oder fügen Sie die ausgehenden IPs von Frontmail hinzu – sonst wird jeder Aufruf mit 403 unrecognised IP address abgelehnt.
  1. Öffnen Sie E-Mail-Dienste → Dienst hinzufügen → Brevo.
  2. Füllen Sie die Felder aus:
Feld Wo Sie es finden Beispiel
API-Schlüssel (v3) SMTP & API → API keys (wird nur einmal angezeigt) xkeysib-1a2b3c…-XyZ
Webhook-Token Optional – der Token, den Sie für den Brevo-Webhook festlegen (siehe unten) 9f8e7d6c5b4a…
Max. E-Mails pro Sekunde Optional; Standard 10/s 10
  1. Klicken Sie auf Prüfen & speichern – Frontmail liest mit dem Schlüssel Ihre Brevo-Kontodaten aus.
  2. Ist die Prüfung erfolgreich, wird der Dienst gespeichert. Zugangsdaten werden mit AWS KMS per Envelope-Verschlüsselung verschlüsselt.

Brevo listet die Einträge unter Senders, Domains & Dedicated IPs → Domains → Authenticate auf. Typische Werte:

; Code zum Nachweis der Domain-Inhaberschaft
example.com. TXT "brevo-code:1a2b3c4d5e6f7a8b9c0d"
; DKIM – neuere Domains erhalten zwei CNAMEs, ältere einen einzelnen TXT unter mail._domainkey
brevo1._domainkey.example.com. CNAME b1.example-com.dkim.brevo.com.
brevo2._domainkey.example.com. CNAME b2.example-com.dkim.brevo.com.
; SPF – in Ihren bestehenden Eintrag einfügen
example.com. TXT "v=spf1 include:spf.brevo.com ~all"
; DMARC
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
  • Kopieren Sie die genauen Namen und Werte der Einträge aus Brevo – das DKIM-Format hat sich im Lauf der Zeit geändert (TXT unter mail._domainkey vs. CNAMEs brevo1/brevo2), und ältere Konten zeigen möglicherweise noch include:spf.sendinblue.com.
  • Brevo setzt für die Domain-Authentifizierung einen DMARC-Eintrag voraus; p=none reicht für den Anfang. Verschärfen Sie nach Auswertung der Berichte auf p=quarantine / p=reject.

Brevo hat einen einzigen API-Endpunkt (api.brevo.com/v3) und hostet die Daten in der EU. In Frontmail gibt es nichts auszuwählen.

  • Kostenloser Tarif: 300 E-Mails pro Tag (Transaktions- und Marketing-E-Mails zusammen).
  • Bezahlte Tarife richten sich nach dem monatlichen E-Mail-Volumen; sind die Credits bei Brevo aufgebraucht, antwortet Brevo mit 402 not_enough_credits, was Frontmail als auth-Fehler behandelt (der Dienst ist unbrauchbar, bis Sie aufladen).
  • Kontovalidierung: Bis Brevo Ihr Konto validiert hat, kann die API Sendungen mit account_under_validation ablehnen.
  • Brevo unterstützt für Probeläufe den Header X-Sib-Sandbox: drop; Frontmail nutzt ihn nicht.
  1. Kopieren Sie die Webhook-URL auf der Seite des Dienstes in Frontmail (Kopier-Schaltfläche):

    https://api.frontmail.dev/webhooks/providers/brevo/<token>
  2. Öffnen Sie in Brevo Transactional → Settings → Webhook → Add a new webhook (neuere Oberfläche: Settings → Webhooks → Transactional).

  3. Fügen Sie die URL ein und wählen Sie bei der Authentifizierung Token. Erzeugen Sie einen langen zufälligen Token und fügen Sie ihn in Brevo und in Frontmail in das Feld Webhook-Token ein. Brevo sendet dann bei jedem Aufruf Authorization: Bearer <token>. (Basic Auth funktioniert ebenfalls – verwenden Sie den Token als Passwort.)

  4. Wählen Sie die Ereignisse aus:

Brevo-Ereignis Frontmail-Ereignis
Delivered delivered
Hard bounce, Invalid email bounced (hart) – wird auf die Sperrliste gesetzt
Soft bounce, Blocked wird als Soft Bounce protokolliert
Deferred wird bei der Nachricht protokolliert
Complaint (Spam) complained – wird auf die Sperrliste gesetzt
Opened opened
Clicked clicked

Signaturprüfung: Brevo signiert die Daten nicht. Der geheime Token in der URL identifiziert den Dienst, und wenn Sie einen Webhook-Token festlegen, lehnt Frontmail Aufrufe ab, deren Bearer-Token (bzw. Basic-Auth-Passwort) nicht übereinstimmt.

Frontmail versieht jede Nachricht mit dem Tag fm:<message id>, damit Ereignisse zugeordnet werden können.

  • auth – der Dienst funktioniert nicht (ungültiger Schlüssel, IP nicht autorisiert, keine Brevo-Credits mehr, Konto in Validierung). Der Dienst wird als unhealthy markiert; der Inhaber erhält eine E-Mail und einen Hinweis im Dashboard. Ein Ersatzdienst der Vorlage übernimmt; sonst 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 – diese Nachricht lässt sich nicht senden (ungültiger Empfänger, ungültiger oder nicht verifizierter Absender, Validierungsfehler 400). Ersatzdienst, falls eingerichtet, sonst failed und Erstattung.
  • transient – 5xx, 429, Timeouts. Wiederholung mit exponentiellem Backoff; nach dem letzten Versuch failed und Erstattung.
Brevo-Antwort Klasse Was tun
401 unauthorized – Key not found auth Erzeugen Sie einen neuen v3-API-Schlüssel (nicht den SMTP-Schlüssel) und aktualisieren Sie den Dienst.
403 permission_denied – unrecognised IP address auth Deaktivieren Sie Authorised IPs oder fügen Sie die IPs von Frontmail hinzu.
402 not_enough_credits auth Wechseln Sie in einen höheren Brevo-Tarif oder warten Sie, bis das tägliche/monatliche Kontingent zurückgesetzt wird.
400 account_under_validation auth Schließen Sie die Kontovalidierung bei Brevo ab (prüfen Sie Ihren Posteingang auf Nachrichten von Brevo).
400 invalid_parameter – sender is invalid / not verified permanent Fügen Sie die Absenderadresse unter Senders hinzu und verifizieren Sie sie.
400 invalid_parameter – email is not valid permanent Siehe ungültiger Empfänger.
429 Too Many Requests transient Rate Limit; Wiederholung mit Backoff.
500 / 502 / 503, Timeout transient Ausfall bei Brevo – Frontmail wiederholt automatisch.
  • Transaktionsversand aktiviert, Konto validiert
  • Domain authentifiziert: brevo-code, DKIM, SPF, DMARC
  • Absenderadresse unter Senders hinzugefügt
  • Eigener v3-API-Schlüssel (xkeysib-…), Authorised IPs aus oder Frontmail erlaubt
  • Verbindung testen erfolgreich
  • Transaktions-Webhook mit Token-Authentifizierung, derselbe Token in Frontmail
  • Ereignisse: Delivered, Hard/Soft Bounce, Invalid, Blocked, Complaint (+ Opened/Clicked)