BREVO · ANLEITUNG
Brevo SMTP einrichten: DNS, DKIM, DMARC, Nodemailer-Test und Bounce-Webhooks (Mai 2026)
Schritt-für-Schritt Anleitung von DNS-Records über Hetzner-Firewall-Whitelisting bis Nodemailer-Test, mit Production-Tipps für dedizierte IP und Bounce-Webhook in n8n.
Recherche & Faktencheck: DuneDive LLC · Stand: 2026-05
Worum geht es hier?
Diese Anleitung führt eine KMU-IT von der leeren Domain zu einer produktiv lauffähigen E-Mail-Pipeline. Sie registrieren einen Brevo-Account mit EU-Hosting, setzen SPF, DKIM und DMARC in Cloudflare-DNS, whitelisten die Brevo-IPs in der Hetzner-Firewall, testen den Versand mit Nodemailer und richten den Bounce-Webhook für n8n ein. Am Ende haben Sie eine Mail-Pipeline, die zu 95-98% in den Posteingang zustellt.
Die Anleitung ist für drei Use-Cases geschrieben. Erstens: eine Treuhand-Anwendung, die Mandantenkommunikation (Login, Reminder, Quartal-Mail) automatisch versendet. Zweitens: ein KMU mit eigener Webseite und Kontaktformular, das die Eingaben per Mail an Vertrieb leitet. Drittens: ein n8n-Workflow, der bei Trigger-Events Mails versendet (z.B. Mahnstatus-Reminder, Lead-Begrüssung).
Voraussetzung: eine Domain unter Cloudflare-Verwaltung (DNS, nicht Web-Proxy), ein Brevo-Account (Free reicht zum Testen, Starter EUR 19/Monat für Produktivbetrieb), eine Anwendung, die SMTP sprechen kann (Node.js + Nodemailer im Beispiel; PHP + PHPMailer, Python + smtplib oder n8n + Send Email Node funktionieren analog). Setup-Zeit: 2-4 Stunden netto plus 24-48 Stunden DNS-Wartezeit.
Warum DNS-Setup so wichtig ist
Mail-Zustellung ist seit 2024 ein DNS-Spiel. Gmail und Yahoo haben im Februar 2024 strenge SPF/DKIM/DMARC-Anforderungen eingeführt; Microsoft (Outlook, Office 365) folgte 2025. Eine Domain ohne korrekt gesetzte DNS-Records landet zu 60-80% im Spam-Ordner – egal wie sauber der Inhalt, egal über welchen Provider versendet wird.
Konkret bedeutet das: SPF muss die berechtigten Sender auflisten (Brevo, ggf. Bexio für Rechnungen, ggf. der eigene Server für Server-Mails). DKIM signiert jede Mail kryptografisch, damit Gmail prüft, dass die Domain wirklich erlaubt hat zu versenden. DMARC sagt Empfängern, was sie mit SPF/DKIM-Failures tun sollen (quarantine oder reject) und liefert Reports darüber, welche IPs in Ihrem Namen versenden – wichtig für Spoofing-Erkennung.
Der zweite Hebel ist EU-Hosting für Compliance. Brevo (ex-Sendinblue) hostet in Frankreich (Paris und Strassburg, AWS eu-west-3 / OVH). Für Schweizer Anwendungen unter Berufsgeheimnis oder revDSG bedeutet das: kein US-Provider in der Transit-Kette für transaktionale Mails. Eine TIA (Transfer Impact Assessment) wird unkomplizierter, weil keine US-Cloud im Pfad ist. Gegenüber Postmark oder Mailgun (beide US-Hosting) ist Brevo damit der saubere Pfad für DACH-KMU.
Der dritte Punkt ist die Bounce-Handling. Wer hart-bounces (nicht existierende Adressen) nicht aus der Sender-Liste entfernt, baut Reputation ab. Brevo macht das automatisch und liefert Webhook-Events für bounce, complaint, delivered, opened, clicked – diese Events landen in n8n und triggern Folgeaktionen (z.B. Adresse in CRM als invalid markieren, oder bei Spam-Complaint manuelle Prüfung anstossen).
Wie die Pipeline aufgebaut ist
Die Architektur hat vier Schichten: Brevo-Account und SMTP-Key, DNS-Records in Cloudflare, Anwendungs-Konfiguration mit Nodemailer, Bounce-Webhook in n8n.
Brevo-Account: Free-Plan reicht zum Testen (300 Mails/Tag, 9.000/Monat). Für Produktivbetrieb Starter EUR 19/Monat (20.000 Mails/Monat, kein Brevo-Branding im Footer). Im Account-Setup EU-Hosting bestätigen (kann nachträglich nicht geändert werden). SMTP-Key generieren unter "SMTP & API → SMTP" – das ist ein dedizierter Key für SMTP-Auth, nicht das Account-Passwort.
DNS-Records in Cloudflare: vier Einträge, alle als DNS-only (graue Wolke). SPF-Record als TXT auf @: `v=spf1 include:spf.brevo.com -all`. DKIM-Record als TXT auf `mail._domainkey`: der Wert kommt aus dem Brevo-Dashboard, ist eine RSA-Public-Key-Präsentation in p=...-Format. DMARC-Record als TXT auf `_dmarc`: initial `v=DMARC1; p=none; rua=mailto:[email protected]; pct=100`, nach 14 Tagen Observation auf `p=quarantine`, später `p=reject`. Optional: BIMI-Record für Logo-Anzeige in Gmail/Yahoo (braucht VMC-Zertifikat, ca. USD 1.500/Jahr – für KMU meist nicht relevant).
Anwendungs-Konfiguration: in Node.js mit Nodemailer-Library. createTransport mit host `smtp-relay.brevo.com`, port 587 (STARTTLS) oder 465 (SMTPS), user die Brevo-Account-E-Mail, pass der SMTP-Key aus Schritt 1. From-Header MUSS eine validierte Sender-Adresse auf der Domain sein (z.B. [email protected]), sonst rejected Brevo. Reply-To kann eine andere Adresse sein, für Antworten an Vertrieb oder Support.
Hetzner-Firewall-Whitelisting: wenn die Anwendung auf Hetzner läuft und ausgehende Ports beschränkt sind (port 587/465 outbound), muss die Firewall Brevo-IPs durchlassen. Brevo veröffentlicht die IP-Range unter status.brevo.com – Mai 2026 sind das im wesentlichen 4 /24-Blöcke. In Hetzner Cloud Firewall outbound TCP 587 erlauben (oder einfacher: allgemein outbound 587 erlauben, ist weniger sensitiv als inbound).
Bounce-Webhook in n8n: in Brevo unter "Settings → Webhooks" einen neuen Webhook anlegen. URL: ein n8n-Workflow mit Webhook-Trigger-Node. Events: hardBounce, softBounce, complaint, delivered, opened, clicked. Der Workflow filtert auf hardBounce und complaint, schreibt in eine Postgres-Tabelle und markiert die Adresse im internen CRM als invalid.
Test und Monitoring: vor Go-Live einmalig Mail-Tester.com – Score muss 10/10 sein, sonst sind die DNS-Records falsch. Monatlich Glass-Box-Test über GMX/Web.de/Gmail/Outlook: landen Mails im Posteingang? Brevo-Dashboard zeigt Delivery-Rate (Ziel > 95%), Bounce-Rate (Ziel < 2%), Spam-Rate (Ziel < 0.1%). Alarm bei Spam-Rate > 0.1% – kann zur Account-Suspension führen.
Brevo SMTP einrichten in 11 Schritten
- 01Schritt 1 – Brevo-Account anlegen: Auf brevo.com Account erstellen. In Account-Settings "EU Data Hosting" bestätigen (kann nicht nachträglich geändert werden). Identitäts-Verifikation (Telefon, Geschäftsadresse) durchlaufen – Brevo prüft manuell bei Erstanwendern, kann 24-48h dauern.
- 02Schritt 2 – Absender-Domain hinzufügen: Im Brevo-Dashboard "Senders & IP → Domains" → "Add a domain". Domain eingeben (ihre-domain.ch). Brevo zeigt die zu setzenden DNS-Records: SPF, DKIM, ein Brevo-Verifikations-TXT.
- 03Schritt 3 – DNS-Records in Cloudflare setzen: Cloudflare-DNS öffnen, Domain auswählen. SPF als TXT auf @: `v=spf1 include:spf.brevo.com ~all` (initial ~all = soft fail, später -all = hard fail). DKIM als TXT auf `mail._domainkey` mit dem von Brevo gelieferten p=...-Wert. Brevo-Verifikations-TXT setzen. Alle als DNS-only (graue Wolke), nicht proxied.
- 04Schritt 4 – DMARC setzen: TXT-Record auf `_dmarc`: `v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; pct=100`. Wichtig: `p=none` initial, für 14 Tage Observation. DMARC-Mailbox einrichten (Brevo selbst oder eigene), um die Aggregate-Reports zu empfangen.
- 05Schritt 5 – DNS-Propagation prüfen: `dig TXT ihre-domain.ch +short`, `dig TXT mail._domainkey.ihre-domain.ch +short`, `dig TXT _dmarc.ihre-domain.ch +short`. Wenn die Werte erscheinen, in Brevo-Dashboard "Verify" klicken. Bei Cloudflare typisch 5-30 Minuten, kann selten bis 24h dauern.
- 06Schritt 6 – SMTP-Key generieren: In Brevo unter "SMTP & API → SMTP" → "Generate a new SMTP key". Name vergeben (z.B. "production-fairlane"). Key kopieren, sicher in einer .env-Datei der Anwendung ablegen (`BREVO_SMTP_KEY=xkeysib-...`). User ist die Account-E-Mail.
- 07Schritt 7 – Hetzner-Firewall outbound 587/465 erlauben: In Hetzner-Cloud-Konsole Firewall des Servers öffnen, outbound TCP 587 (STARTTLS) und 465 (SMTPS) auf 0.0.0.0/0 erlauben. Alternativ nur Brevo-IPs aus status.brevo.com listen.
- 08Schritt 8 – Nodemailer-Test: Node.js-Test-Skript: `const nodemailer = require("nodemailer"); const t = nodemailer.createTransport({host:"smtp-relay.brevo.com",port:587,secure:false,auth:{user:process.env.BREVO_USER,pass:process.env.BREVO_SMTP_KEY}}); await t.sendMail({from:"[email protected]",to:"[email protected]",subject:"Brevo Test",text:"Hallo, das ist ein Test."});`. Den Mail-Tester.com-Score abrufen – muss 10/10 sein.
- 09Schritt 9 – Production-Tipps dedicated IP: Ab 100k Mails/Monat dediziertes IP-Pool buchen (Brevo Business, EUR 25 zusätzlich pro IP). Reputation-Warm-Up in 4-8 Wochen: Tag 1-7 unter 1.000 Mails, Tag 8-14 unter 5.000, dann linear hochfahren. Ohne Warm-Up landet die neue IP zu Beginn im Spam.
- 10Schritt 10 – Bounce-Webhook in n8n: In Brevo unter "Settings → Webhooks" neuen Webhook. URL: n8n-Webhook-Endpunkt (z.B. https://n8n.ihre-domain.ch/webhook/brevo-bounces). Events: hardBounce, complaint. In n8n: Webhook-Trigger → IF auf event=="hardBounce" → Postgres-Insert in invalid_emails-Tabelle → CRM-API-Call zum Markieren der Adresse.
- 11Schritt 11 – Monitoring und DMARC-Tightening: Nach 14 Tagen Observation DMARC auf `p=quarantine` setzen, nach weiteren 30 Tagen ohne Issues auf `p=reject`. Brevo-Dashboard täglich auf Spam-Rate (Ziel < 0.1%) und Delivery-Rate (Ziel > 95%) prüfen. Alarm via Telegram bei Spam-Rate > 0.05%.
Wann Brevo das richtige Tool ist
Brevo passt, wenn (a) das Volumen zwischen 300 und 200.000 Mails pro Monat liegt, (b) EU-Hosting für Compliance gewünscht ist und (c) der Use-Case transaktional ist (Login, Bestellung, Rechnung, Mahnung, Reminder).
Konkrete Cases: eine Mandanten-Plattform mit 200 Login-Resets pro Monat und 500 Quartal-Reminders. Eine n8n-Workflow-Automatisierung, die pro neuen Lead eine Mail an Vertrieb sendet (bei 50 Leads pro Tag = 1.500 pro Monat). Eine MyWork.Now-Buchungsplattform mit Bestätigungen.
Ab 200k Mails pro Monat lohnt AWS SES (USD 0.10 pro 1.000 Mails) – aber das ist US-Hosting. Bei zwingendem EU-Hosting: Brevo Business Plan mit dediziertem IP-Pool. Wer reines Marketing-Newsletter braucht (Listen, Segmentierung, A/B-Tests), ist mit Mailjet oder Klaviyo besser bedient – Brevos Marketing-Modul ist nicht das stärkste.
Wann Brevo nicht das richtige Tool ist
Brevo passt nicht, wenn (a) das Volumen sehr klein ist (< 50 Mails/Monat) – dafür reicht der eigene Mailserver oder ein Gmail-SMTP. (b) extrem niedrige Latenz unter 500 ms gefragt ist (Real-Time-Notifikationen) – dafür sind In-App-Channels oder Push-Notifications besser. (c) Massen-Marketing-Versand mit komplexen Segment-Regeln nötig ist – dann eher Klaviyo oder Customer.io.
Weitere Fallen: Brevo-Free-Plan im Produktivbetrieb laufen lassen – das 300/Tag-Limit wird erreicht, eine Quartal-Reminder-Welle scheitert still. Das Account-Login-Passwort als SMTP-Pass eintragen – nicht rotierbar, bei einem Leak ist der Account verloren. DMARC sofort auf `p=reject` setzen – vor 14 Tagen Observation wird legitimes Mail blockiert, weil ein vergessenes Subdomain-SPF noch nicht abgedeckt ist. Spam-Beschwerden ignorieren – über 0.1% Beschwerderate suspendiert Brevo den Account.
Vor- und Nachteile
STÄRKEN
- EU-Hosting in FR – für revDSG/TIA dokumentierbar
- Free-Plan 300 Mails/Tag reicht für Tests und kleine Apps
- DKIM/SPF/DMARC im Dashboard geführt, kein eigener Mailserver-Aufwand
- Webhook-Bounce-Handling out of the box, n8n-anbindbar
SCHWÄCHEN
- Preis pro Mail steigt ab 100k/Monat über AWS SES
- Suspension bei Spam-Beschwerden über 0.1% – Account-Risiko
- Account-Approval kann 24-48h dauern
- Marketing-Automation ist im Vergleich zu Klaviyo schwach
Häufige Fragen
Was, wenn Mail-Tester.com kein 10/10 zeigt?
Drei Standard-Probleme. (1) SPF nennt nicht alle Sender: wenn Sie auch über Bexio (Rechnungen) oder den eigenen Mailserver versenden, muss der SPF-Record alle drei nennen: `v=spf1 include:spf.brevo.com include:_spf.bexio.com mx -all`. (2) DKIM-Public-Key nicht gefunden: DNS-Propagation noch nicht durch (dig nochmal prüfen), oder Tippfehler im Selector (`mail._domainkey`, nicht `mail_domainkey`). (3) DMARC fehlt oder ist syntaktisch falsch: nochmals exakte Syntax prüfen, `v=DMARC1;` am Anfang ist Pflicht.
Brauche ich eine dedizierte IP?
Erst ab ca. 100.000 Mails pro Monat. Darunter ist die Shared-IP-Reputation von Brevo besser als eine kalte dedizierte IP. Vorteil dedizierter IP: volle Kontrolle über Reputation (keine Mit-Sender können schaden). Nachteil: 4-8 Wochen Warm-Up, kein DKIM-Schutz, wenn Volumen zu klein bleibt. Faustregel: erst dediziert, wenn Sie konstant > 50k Mails/Monat senden und auf der Shared-IP messbar Probleme haben.
Was tun, wenn der Account suspendiert wird?
Ursache fast immer: Spam-Beschwerderate > 0.1% oder hartes Bounce-Rate > 5%. Bei Suspension: (1) Brevo-Support kontaktieren (in der Regel binnen 24h Antwort). (2) Logs der letzten 7 Tage analysieren, problematische Sender oder Inhalte identifizieren. (3) Bounce-Liste exportieren und alle harten Bounces aus der eigenen Datenbank streichen. (4) Mit klarem Plan und reduziertem Volumen wieder anfahren. Wer prophylaktisch arbeitet: monatliche Bounce-Bereinigung und Mail-Inhalt-Review.
Brevo versus AWS SES versus Postmark?
Brevo: EU-Hosting, EUR 19/Monat fix, gute UI, Free-Tier hilfreich. AWS SES: USD 0.10 pro 1.000 Mails, billig im Volumen, US-Hosting (Frankfurt-Region als eu-central-1 verfügbar), wenig UI. Postmark: USD 15/Monat für 10.000 Mails, sehr schnelle Zustellung, US-Hosting. Für Schweizer KMU mit revDSG-Sensibilität: Brevo. Für reine Cost-Optimierung mit US-Akzeptanz: SES eu-central-1.
Verwandte Themen
Quellen
PASSEND ZU IHREM STACK?