Pillar-Guide · 22 Min. Lesezeit · Aktualisiert May 2026

Selbstgehostetes E-Mail-Marketing 2026 — Ihre Liste, Ihr Versand, Ihre Kosten gehören Ihnen.

Selbstgehostetes E-Mail-Marketing bedeutet, die Kampagnen-Software, die Abonnenten-Datenbank und die Versand-Pipeline auf einer Infrastruktur zu betreiben, die Sie selbst kontrollieren — statt sie von Mailchimp, Brevo oder einem ähnlichen SaaS-Anbieter zu mieten. Der Tausch ist real: Sie übernehmen DevOps-Aufgaben und erhalten dafür lineare Kosten pro Versand, vollständige Datenresidenz und eine Zustellbarkeit, die mit Ihrer Reputation skaliert — nicht mit der der Plattform. Dieser Leitfaden geht die Architektur, die Kostenrechnung, die Grundlagen der Zustellbarkeit und die Plattformen durch — jede Aussage rückführbar auf einen Dateipfad oder eine veröffentlichte Quelle.

In diesem Leitfaden

  1. Was ist selbstgehostetes E-Mail-Marketing?
  2. So funktioniert es — die Architektur
  3. Warum Teams zu Self-Hosting wechseln
  4. Die Kostenrechnung bei 5K → 200K Abonnenten
  5. Wahl der Versand-Architektur
  6. Open-Source-Plattformen — objektiver Vergleich
  7. Setup-Roadmap (Server → DNS → Warm-up)
  8. Grundlagen der Zustellbarkeit
  9. DSGVO + Datenresidenz
  10. Wann Self-Hosting die falsche Wahl ist
  11. FAQ
  12. Wo es weitergeht

§1 · Definition

Was ist selbstgehostetes E-Mail-Marketing?

Selbstgehostetes E-Mail-Marketing ist die Praxis, eine E-Mail-Marketing-Anwendung — Listenverwaltung, Kampagnen-Builder, Automatisierungs-Flows, Analytics — auf dem eigenen Server zu betreiben, zusammen mit einer Versand-Pipeline, die Sie ebenfalls kontrollieren. Das Gegenmodell ist SaaS: ein Anbieter (Mailchimp, Brevo, Constant Contact, Klaviyo, ConvertKit, MailerLite, Campaign Monitor) hostet die Anwendung und die Versand-Infrastruktur in Ihrem Namen und rechnet wiederkehrende Gebühren ab, die mit Ihrer Abonnentenzahl skalieren.

Ein selbstgehostetes Setup hat drei Komponenten — die unteren beiden gehören Ihnen:

  1. Die Anwendungsschicht. Eine installierbare Web-App — typischerweise PHP/Laravel, Go, Ruby oder Node — die Abonnentenlisten, Kampagnen-Entwürfe, Automatisierungs-Trigger, Klick-/Öffnungs-Tracking und das Dashboard für Ihre Marketer verwaltet. Beispiele: AcelleMail, Listmonk, Mautic, Sendy.
  2. Die Versand-Pipeline. Der Mechanismus, der eine Nachricht aus der Warteschlange übernimmt und an einen Mail Transfer Agent (MTA) übergibt, der per SMTP mit den Empfänger-Mailservern spricht. Sie können einen eigenen MTA betreiben (Postfix, Postal, Haraka), einen Relay-as-a-Service nutzen (Amazon SES, SendGrid, Mailgun, Postmark, SparkPost) oder beides kombinieren — abhängig vom Volumen und Ihrer Bereitschaft, IP-Reputation zu pflegen.
  3. Die Infrastruktur. Ein Linux-VPS, eine verwaltete Postgres-/MySQL-Instanz, eine Redis- oder beanstalkd-Queue, eine Domain unter Ihrer Kontrolle sowie DNS-Hoheit für SPF, DKIM, DMARC und PTR-Records. Eine kleine Liste (unter 50.000 Abonnenten) läuft bequem auf einem Droplet für 5–20 $/Monat; größere Listen skalieren horizontal mit zusätzlichen Queue-Workern und Read-Replica-Datenbanken.

Sie tauschen administrative Arbeit gegen Kosten pro Versand und Datenresidenz. SaaS-Anbieter abstrahieren Schritt 2 und 3 vollständig; Sie zahlen ihnen dafür eine Abstraktions-Steuer in Form monatlicher Gebühren, die mit der Abonnentenzahl skalieren. Self-Hosting holt diese Steuer zurück — im Tausch gegen die Zeit, einen Server zu provisionieren, DNS zu konfigurieren und ein Versand-Relay einzurichten. Für jemanden, der das schon einmal gemacht hat, dauert das mittlerweile unter einer Stunde; für Erstanwender mit der Doku vor Augen ein Wochenende.

"Self-hosted" darf nicht mit "DIY von Grund auf" verwechselt werden. Alle großen Open-Source-Plattformen werden als schlüsselfertige Installationen ausgeliefert — hochladen, DB-Zugangsdaten konfigurieren, Domain anbinden. Der DIY-Teil ist das Versand-Relay und das DNS — und wenn Sie Amazon SES (oder ein beliebiges SMTP-Relay) nutzen, schrumpft der DIY-Teil auf ein einziges, einmalig ausgefülltes Formular.

§2 · Architektur

Wie ein selbstgehostetes E-Mail-Marketing-System tatsächlich funktioniert.

Ein Kampagnenversand durchläuft fünf Phasen. Sie zu verstehen ist die Voraussetzung dafür, Plattformen auszuwählen, ein Versand-Relay zu wählen und Zustellprobleme zu diagnostizieren, wenn eine Kampagne unterperformt.

[Marketer's browser]
        │
        ▼  HTTPS POST /campaigns
[Web app — Laravel/Symfony/Go]  ◀── REST API also lands here
        │
        ▼  enqueue per-recipient job
[Job queue — Redis / beanstalkd / DB]
        │
        ▼  worker picks job, renders MIME
[Sending driver — SES/Mailgun/SMTP]
        │
        ▼  TLS, AUTH, DATA, .
[Mail Transfer Agent (MTA)]
        │
        ▼  SMTP to recipient MX
[Recipient mail server — Gmail/O365/Yahoo]
        │
        ▼  open pixel · click redirect · bounce · complaint
[Webhook back to web app] ◀── reputation feedback loop

Phase 1 — Kampagnenerstellung. Der Marketer erstellt eine Kampagne in der Web-Oberfläche: Betreffzeile, Absendername, Listenauswahl, Inhaltseditor (Drag-and-drop, MJML oder rohes HTML). Mit Klick auf "Senden" legt die Anwendung einen Kampagnen-Datensatz an und reiht pro Empfänger Jobs in eine Hintergrund-Queue ein. Noch verlässt nichts den Server.

Phase 2 — Queue + Worker. Hintergrund-Worker ziehen Jobs mit der konfigurierten Rate (typischerweise 5–50 Versendungen/Sekunde pro Worker). Der Worker holt den Abonnenten-Datensatz, fügt benutzerdefinierte Felder in die Vorlage ein, bettet ein Tracking-Pixel mit Message-ID-Schlüssel ein und schreibt jeden Link in einen Klick-Tracking-Redirect um. Das Ergebnis ist eine vollständig personalisierte MIME-Nachricht, bereit für die Übergabe an einen Sending-Driver.

Phase 3 — Sending-Driver. Der Driver ist der Adapter zwischen Ihrer Anwendung und dem gewählten Transport: ein Amazon-SES-API-Aufruf, ein Mailgun-HTTPS-POST, ein SendGrid-Web-API-Aufruf oder ein roher SMTP-AUTH PLAIN-Handshake mit Ihrem eigenen Postal-MTA. Das Sending-Driver-Pattern von AcelleMail definiert beispielsweise einen 5-Methoden-Vertrag (connect, send, getDeliveryStatus, getCapabilities, validateConfig), den jeder Driver implementiert — siehe /developers/sending-drivers für die vollständige Driver-Guideline. Mitgelieferte Driver gibt es für Amazon SES, SendGrid, Mailgun, SparkPost, Elastic Email, Gmail SMTP und jeden generischen SMTP-Server (8 Vendoren live in app/SendingServers/Drivers/Vendors/).

Phase 4 — MTA → Empfänger. Der MTA (Ihrer oder der des Relays) öffnet eine SMTP-Verbindung zum MX-Server des Empfängers, stellt sich mit HELO/EHLO vor, verhandelt STARTTLS, authentifiziert die DKIM-Signaturschlüssel und übermittelt die Nachricht. Der Empfänger-Mailserver führt Spam-Scoring, SPF-/DKIM-/DMARC-Verifizierung und List-Unsubscribe-Header-Verarbeitung durch — und stellt entweder zu oder lehnt ab.

Phase 5 — Feedback-Loop. Drei Signale kommen zurück, alle asynchron. Bounces treffen per SMTP ein (5xx-Codes für Hard Bounces, 4xx für Soft) oder per Webhook des Relays. Beschwerden (der Empfänger hat "Spam" geklickt) treffen über den Feedback-Loop des Mailbox-Providers ein oder, ebenfalls, per Relay-Webhook. Engagement (Pixel-Aufrufe, Klick-Redirect-Requests) trifft per einfachem HTTP zurück bei Ihrer Web-App ein. Die Anwendung nutzt diese Signale, um Sperrlisten zu aktualisieren, tote Adressen auszusortieren und die Kampagnen-Analytik zu speisen. Der Webhook-Event-Katalog von AcelleMail liegt in config/webhook_events.php — die kanonische Liste der Events, die die Anwendung emittiert und konsumiert.

Die Form ist auf jeder selbstgehosteten Plattform gleich, mit einer Variablen: wo Queue und MTA leben. Der Worker von AcelleMail läuft per Default auf derselben Box wie die Web-App; Listmonk macht es genauso; Mautic nutzt den Symfony Messenger und unterstützt separate Worker-Hosts. Der Mail-Relay kann lokal sein (Postal auf derselben Maschine, Postfix auf einer Schwester-Box) oder remote (SES, Mailgun) — diese Entscheidung ist Thema von §5.

§3 · Motivation

Warum Teams von SaaS zu Self-Hosting wechseln.

1. Kosten pro Versand werden linear

SaaS-Preise skalieren mit der Kontaktanzahl — unabhängig davon, wie oft Sie senden. Self-Hosting entkoppelt beides: Software ist ein Fixkosten-Posten (kostenlos für Listmonk/Mautic, $80 einmalig für AcelleMail Standard, 59 $ für Sendy); Versendungen werden pro Empfänger zum veröffentlichten Tarif des Relays abgerechnet (Amazon SES liegt bei 0,10 $ pro 1.000). Bei 50.000 Abonnenten und einer Kampagne pro Woche fällt die Plattform-Rechnung von 385 $/Mo auf Mailchimp Standard auf rund 20 $/Mo Versandgebühren — siehe Tabelle in §4.

2. Abonnentendaten liegen auf Ihrem Server

E-Mail-Adressen, benutzerdefinierte Felder, Segmentierungs-Tags, Klickhistorie, Öffnungen, Beschwerden — alles in einer Datenbank, die Sie kontrollieren. Kein Drittanbieter als Datenverarbeiter. Keine plattformseitigen Datenexporte für Marketing-Data-Fabric-Integrationen. CSV-Export deckt alles ab, weil Sie das Schema geschrieben (oder lesen) können. Für ein SaaS-Billing-Setup mit Audit-Pflichten ist dieser Datenbesitz das Compliance-Rückgrat.

3. Zustellbarkeit skaliert mit Ihrer Domain

Auf einer SaaS-Plattform vermischt sich Ihre Absender-Reputation mit der anderer Mandanten. Eine Spam-Beschwerde des Nachbarmandanten kann auf Ihre Domain-Zustellbarkeit abfärben. Self-Hosting über ein Relay wie Amazon SES bietet die Option einer dedizierten IP (oder gemeinsam — Ihre Wahl), und die From-Domain-Reputation, die Mailbox-Provider tatsächlich bewerten, gehört Ihnen allein. Warm-up, Throttling und IP-Rotation sind sichtbare Stellschrauben — kein verborgenes Plattformverhalten.

4. Kein Vendor-Lock-in per Konstruktion

Schema, Templates, Automatisierungs-Flows und (bei Open-Source-Plattformen) der Quellcode liegen auf Ihrer Festplatte. Die Migration weg von einer selbstgehosteten Plattform ist ein Datenexport, kein Integrationsprojekt. Der Wechsel zwischen Versand-Relays ist eine Konfigurationsänderung. Die Ausstiegskosten entsprechen den Kosten des Anpassens eines Formulars — nicht den Kosten, neun Monate Automatisierungs-Trigger im Editor eines neuen Anbieters nachzubauen.

5. Sie definieren Ihre eigene Compliance-Haltung

Wählen Sie eine Region (eu-west-1, us-east-1, ap-southeast-1). Wählen Sie Aufbewahrungsfristen. Wählen Sie, welche benutzerdefinierten Felder im Ruhezustand verschlüsselt werden. Das Schrems-II-Urteil des Europäischen Gerichtshofs hat grenzüberschreitende Datentransfers zu einem wiederkehrenden Rechtsthema für SaaS-gehostete Listen gemacht; selbstgehostet auf EU-Infrastruktur nimmt diese Frage vom Tisch. Siehe §9.

6. Erweiterbarkeit ist Code, kein Feature-Request

Eine Segmentierung, die die Plattform nicht unterstützt, ein Webhook zu Ihrem CRM, ein regionales Payment-Gateway für Ihr Reseller-Billing, ein branchenspezifischer Report — alles wird zu einem 200-Zeilen-Plugin oder einem SQL-Query, nicht zu einem Roadmap-Antrag. AcelleMail liefert ein Plugin-SDK mit elf quellgestützten Entwicklerdokumenten zu Hooks, Lifecycle, Drivers, Gateways und Tests.

§4 · Kostenrechnung

Was es tatsächlich bei 5K, 10K, 50K und 200K Abonnenten kostet.

Annahmen: eine Kampagne pro Abonnent und Woche (4,33 Versendungen pro Monat und Kontakt), Amazon SES zum veröffentlichten Preis von 0,10 $ pro 1.000 E-Mails, ein VPS für 5–20 $/Monat für die Anwendung sowie entweder die einmalige Standard-Lizenz von AcelleMail zu $80, abgeschrieben über 36 Monate, oder eine kostenfreie Open-Source-Plattform. Die Preise für Mailchimp Standard entsprechen den veröffentlichten Sätzen zum May 2026.

Abonnenten Mailchimp Standard / Monat Selbstgehostet SES + VPS / Monat Ersparnis über 3 Jahre
5.000100 $~7 $~3.300 $
10.000135 $~9 $~4.500 $
50.000385 $~25 $~13.000 $
200.0001.310 $~90 $~44.000 $

Spalte "Selbstgehostet" = SES-Versandgebühr + 5–20 $ VPS + 2 $/Mo abgeschriebene Lizenz. Setup-Zeit nicht inbegriffen. Mailchimp-Standard-Tarife laut mailchimp.com/pricing/marketing, Stand 2026-05.

Was die Rechnung nicht abbildet

Die Tabelle ist auf zwei Achsen konservativ und auf einer dritten aggressiv. Konservativ: Sie unterstellt eine Kampagne pro Woche — viele Listen senden 2–4 pro Woche, was die Ersparnis verdoppelt oder vervierfacht (Versendungen sind linear, das Tarif-Limit des SaaS-Plans bleibt gleich). Erneut konservativ: Sie modelliert nicht die Einsparung bei transaktionalen E-Mails (Passwort-Resets, Beleg-Mails), die bei SaaS oft auf einem separaten Tarif laufen (Mailchimp Transactional, Postmark, SendGrid) und die Self-Hosting in dieselbe SES-Rechnung packt.

Aggressiv: Sie rechnet weder die initiale Setup-Zeit noch die laufende Wartung als Engineering-Aufwand ein. Eine realistische Schätzung sind 8–16 Stunden Engineering für die Erstinstallation, danach 1–2 Stunden/Monat für OS-Patches, Zertifikatserneuerungen, Queue-Monitoring und Pflege der Sperrlisten. Bei einem internen Stundensatz von 100 $ sind das 200 $/Mo Overhead — bei 5.000 Abonnenten spürbar, bei 50.000 unerheblich, bei 200.000 hochprofitabel.

Das sauberste mentale Modell: Self-Hosting ist eine Fixkosten-pro-Versand-Architektur, SaaS eine Abonnenten-Steuer-Architektur. Sie schneiden sich für unterschiedliche Teams an unterschiedlichen Punkten, aber für jede Liste oberhalb von ~10.000 mit stetigem Wochenversand wird der SaaS-Aufschlag zum dominierenden Posten. /vs/mailchimp führt den Vergleich auf Feature-Ebene durch.

§5 · Versand-Architektur

Wahl Ihrer Versand-Pipeline.

Self-Hosting erlaubt Ihnen, "die Marketing-App" von "dem, was SMTP spricht" zu entkoppeln. Drei Architekturen dominieren — jede mit anderem Kosten-, Kontroll- und Reputationsprofil.

A. Cloud-SMTP-Relay (für die meisten Teams empfohlen)

Amazon SES, Mailgun, SendGrid, Postmark, SparkPost, Elastic Email — kommerzielle Relays, die Ihre Nachricht per API oder SMTP entgegennehmen und die eigentliche SMTP-Transaktion mit dem Empfänger abwickeln. Sie veröffentlichen IP-Pools, regeln Warm-up-Defaults, beobachten Blocklisten und liefern Feedback-Loop-Reports. Die Vendor-Driver von AcelleMail decken die fünf wichtigsten von Haus aus ab (app/SendingServers/Drivers/Vendors/{Amazon, Mailgun, SendGrid, SparkPost, ElasticEmail}) — plus generisches SMTP für alle anderen.

Warum dies der Standard ist: SES kostet 0,10 $ pro 1.000 E-Mails ohne monatliches Minimum. Das Relay übernimmt die unangenehmen Teile (rDNS, MX-Backup, Retry-Logik, Beschwerden-Parsing). Was Sie besitzen, ist Ihre Domain-Reputation; was Sie auslagern, ist die IP-Reputation. Für 95 % der Teams ist diese Aufteilung richtig.

B. Eigener MTA (Postal / Postfix + DKIM)

Postal ist eine Open-Source-Mail-Plattform, die Sie auf einem eigenen Server installieren und aus Ihrer Marketing-App heraus als SMTP-Ziel ansprechen. Postfix ist der altehrwürdige Unix-MTA — flexibler, aber konfigurationsintensiver. Beide geben Ihnen die volle Kontrolle über die Versand-IP, was die richtige Wahl ist, wenn Sie spezifische Zustellbarkeits-Anforderungen haben (eine Bank, ein Gesundheitsanbieter, ein Großversender mit eigenem Abuse-Desk).

Warum das anspruchsvoller ist: Sie übernehmen jetzt IP-Warm-up, Beschwerden-Parsing, Blocklist-Bereinigung und die Rufbereitschaft, wenn Port 25 5xx-Codes ausspuckt. Die meisten Cloud-Anbieter (DigitalOcean, AWS) sperren ausgehenden Port 25 per Default — Sie brauchen Colocation, einen dedizierten MTA-Host oder einen Anbieter, der direkten Versand explizit erlaubt. Über ~10 Mio. Versendungen/Monat oder in regulierten Branchen lohnenswert; für alle anderen Over-Engineering.

C. Hybrid (mehrere Relays, automatische Rotation)

AcelleMail (und die meisten reifen selbstgehosteten Plattformen) unterstützt mehrere konfigurierte Versand-Server. Sie können Transaktionsmails über Postmark, Marketing über SES und Reaktivierungskampagnen über Mailgun routen — jeweils mit eigenem Tageskontingent, IP-Pool und DKIM-Schlüssel. Das ist das Setup für Großversender: Vielfalt der Relays begrenzt den Schadensradius, wenn der IP-Pool eines Anbieters auf einer Blockliste landet, und erlaubt die Anpassung der Kosten an die Versandprioritäten. Die Driver-Registry (app/SendingServers/DriverRegistry.php) ist der zentrale Katalog.

Entscheidungsraster

  • Unter 1 Mio. Versendungen/Mo, minimaler Betriebsaufwand gewünscht → Amazon SES (oder Mailgun, falls Sie deren Dashboard bevorzugen).
  • 1–10 Mio. Versendungen/Mo, dedizierte IP nötig → SES mit dedizierter IP (24,95 $/Mo pro IP) oder SendGrid Pro.
  • 10+ Mio. Versendungen/Mo, regulatorische Anforderung an volle IP-Kontrolle → Postal auf eigener Infrastruktur.
  • Multi-Tenant-SaaS, in dem jeder Kunde eine eigene Versanddomain braucht → SES-Konfigurations-Sets pro Domain oder mehrere SendGrid-Subusers, jeweils als mehrere Versand-Server-Datensätze in der Anwendung konfiguriert.

§6 · Plattformen

Die wichtigsten Open-Source-Self-Hosting-Plattformen — objektiver Vergleich.

Offenlegung. AcelleMail ist der Herausgeber dieser Seite. Wir zitieren transparent unsere eigenen Code-Pfade und verlinken die veröffentlichte Dokumentation der Wettbewerber für deren Faktenaussagen. Die Tabelle unten erfasst Lizenzmodell, Sprache, Versandmodell und Headline-Zielgruppe — keine Werturteile.

Plattform Lizenz Stack Integrierter Versand Schwerpunkt
AcelleMail $80 einmalig, Quellcode verfügbar PHP 8.3, Laravel 11, MySQL SES, Mailgun, SendGrid, SparkPost, Elastic, Gmail, generisches SMTP Multi-Tenant-SaaS-Billing + Plugin-SDK
Listmonk AGPL v3 Go-Single-Binary, Postgres Generisches SMTP, pro Server konfigurierbar Schlanker Newsletter + Transaktionsmail
Mautic GPL v3 PHP 8, Symfony, MySQL SMTP, Amazon SES, SendGrid (über Plugins) Marketing-Automatisierung, CRM-orientiert
Sendy 59 $ einmalig, Closed Source PHP, MySQL Amazon SES (primär), generisches SMTP Newsletter-Versand via SES, minimale Oberfläche
Postal MIT Ruby, MariaDB, RabbitMQ Agiert selbst als MTA (gekoppelt mit AcelleMail/Listmonk/Mautic) Selbstgehosteter MTA + Relay (kein Kampagnen-Tool)

Die wichtigsten Achsen, an denen sich diese Plattformen in der Praxis unterscheiden:

  • Multi-Tenancy. AcelleMail und Mautic verfügen über ein Customer/Plan-Modell, das das Sendevolumen pro Mandant deckelt — nützlich, wenn Sie E-Mail-Marketing-as-a-Service weiterverkaufen oder ein Multi-Brand-Setup betreiben. Listmonk und Sendy sind Single-Tenant.
  • Marketing-Automatisierung. Mautic wurde gezielt um Lead-Scoring, Drip-Flows und CRM-Integration gebaut. AcelleMail bietet Automatisierungs-Flows mit Verzweigungen und Event-Triggern (siehe die Automatisierungs-Seite). Listmonk ist bewusst newsletter-orientiert — Kampagnen und Transaktionsmail, kein Flow-Builder.
  • Lizenzmodell. Listmonk (AGPL v3) und Mautic (GPL v3) verlangen die Offenlegung abgeleiteter Werke unter den Bedingungen ihrer Lizenzen; AcelleMail ist quelloffen verfügbar mit einer CodeCanyon Regular License (Einsatz in beliebig vielen Installationen, die Sie kontrollieren) oder Extended License (Weiterverkaufsrechte). Sendy wird als Closed-Source-Binary vertrieben.
  • Plugin- / Erweiterungsmodell. AcelleMail liefert ein dokumentiertes Plugin-SDK (Hooks, Lifecycle, Drivers, Gateways). Mautic bietet Plugin-Support, der vor allem auf CRM-Brücken zugeschnitten ist. Listmonk und Sendy haben keine Plugin-Systeme — Erweiterungen entstehen als Forks.

Die Entscheidung richtet sich nach der Projektform, nicht danach, "welches das beste ist". Eine Solo-Newsletter-Autorin mit 5.000 Abonnenten und ohne Plugin-Bedarf ist mit Listmonk gut bedient. Ein SaaS-Team, das Kunden-Pläne plus REST-API plus ein Plugin für die Billing-Webhook-Integration will, ist der AcelleMail-Anwendungsfall. Ein B2B-Vertriebsteam, das Leads scort, ist der Mautic-Anwendungsfall. Postal ist Klempnerei — paaren Sie es mit einem der anderen.

§7 · Setup roadmap

From zero to first campaign — the seven-step roadmap.

A first-time setup with Amazon SES as the relay typically lands in 4–8 hours, with DNS propagation eating most of the wall-clock time. Subsequent installs (the second tenant, a staging environment) are 30 minutes.

1

Provision a Linux VPS

A $5–$10/month droplet (DigitalOcean, Hetzner, Vultr, OVH, AWS Lightsail) is enough for under 50K subscribers. Pick a region that matches your data-residency story — eu-west for EU customers, us-east for US, ap-southeast for APAC. Ubuntu 22.04 LTS or 24.04 LTS is the path of least surprise for any PHP-Laravel platform.

2

Install the runtime + database

For AcelleMail: PHP 8.3 with the imagick / mbstring / xml / curl / mysql extensions; MySQL 8 (or MariaDB 10.6+); Redis or beanstalkd for the queue; nginx as the reverse proxy. The standard Laravel deployment guide applies. For Listmonk: just the single Go binary plus Postgres. For Mautic: PHP 8, Symfony's extension list, MySQL, plus a queue worker.

3

Issue TLS + point your domain

Let's Encrypt via certbot covers TLS for free. Point an A record (or AAAA) at your droplet's IP. Add the application's domain (e.g. email.example.com) and a separate DKIM domain (e.g. mail.example.com — the bounced-from address) so reputation segments correctly.

4

Open a sending account (Amazon SES recommended)

Sign up to AWS, enable SES in the region of your choice, request production-mode access (24h turnaround), generate SMTP credentials. SES costs $0.10 per 1,000 emails and includes the first 62K/month free if you send from an EC2 instance — most setups won't qualify but the published rate is the rate. Configure a configuration set for tracking events (opens, clicks, bounces, complaints) and point its SNS topic at your application's webhook endpoint.

5

Set DNS authentication records

Three TXT records, plus DKIM-signing CNAMEs from SES. SPF: v=spf1 include:amazonses.com -all (or ~all for a softer first run). DKIM: 3 CNAMEs SES generates for you; copy them into your DNS. DMARC: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com for the first month while you watch the reports, tighten to p=quarantine then p=reject as confidence builds. PTR (reverse DNS) is your hosting provider's setting — for SES, AWS handles it.

6

Connect application → relay

In the platform's admin UI, add a sending server: pick "Amazon SES" (or "SMTP" for any other relay), paste credentials, set daily quota at 80% of your relay's published limit. Most platforms include a "Send test" button that fires a single message to a verified address — use it before any real campaign. AcelleMail's verification flow walks the validation pipeline at /developers/sending-drivers.

7

Warm the IP, watch the metrics

If you're on a fresh dedicated IP (rare for first-time SES), warm over 4–6 weeks: 50 sends day 1, doubling every 2–3 days, capped at the relay's daily limit. On SES shared IPs, this is handled for you. Watch bounce rate (target < 2%), complaint rate (target < 0.1%), and the Mailbox Provider deliverability dashboards (Google Postmaster Tools, Microsoft SNDS). Day 30: if metrics are stable, tighten DMARC; day 60: review send cadence and segment-level engagement.

§8 · Deliverability

The deliverability fundamentals every self-hosted sender owns.

Mailbox providers — Gmail, Outlook, Yahoo, Apple Mail — score every incoming message against a stack of authentication and reputation signals before deciding inbox vs. spam vs. reject. On SaaS the platform abstracts these signals; self-hosted you tune them yourself. The good news: the standards are public and stable.

SPF — Sender Policy Framework (RFC 7208)

A TXT record on your sending domain that lists the IPs allowed to send mail "as" that domain. Mailbox providers check the envelope-from against the SPF record; mismatches degrade reputation. With SES the record is one line: v=spf1 include:amazonses.com -all. For multi-relay setups, chain includes: v=spf1 include:amazonses.com include:mailgun.org -all. The -all tail says "anything not listed should be rejected"; for the first month use ~all (soft-fail) until you're confident the record is exhaustive.

DKIM — DomainKeys Identified Mail (RFC 6376)

A cryptographic signature on every outgoing message, signed by a key whose public half is published as a DNS TXT record at {selector}._domainkey.{domain}. The receiver fetches the public key and verifies the signature; tamper-evident header + body chain. SES generates three CNAMEs for you to add — done. Self-hosted MTAs need OpenDKIM or rspamd configured. DKIM failures don't usually trigger immediate rejection, but they erode the domain reputation score that drives placement.

DMARC — alignment + reporting (RFC 7489)

The policy on top of SPF + DKIM. DMARC says "the From-header domain must align with the SPF or DKIM domain, and here's what to do if alignment fails: monitor (p=none), quarantine (p=quarantine), or reject (p=reject)." Plus an rua address that gets daily aggregate reports of who's sending mail "as" you. Start at p=none for a month, read the reports, fix any forgotten subdomains, then move to p=quarantine, then p=reject. As of February 2024, Google and Yahoo require DMARC for bulk senders (5K+ sends/day) — not optional.

List hygiene — the suppression habit

Hard bounces (5xx codes — invalid mailbox, domain doesn't exist) must be suppressed permanently after the first occurrence; otherwise mailbox providers treat your list as poorly maintained. Soft bounces (4xx — full mailbox, temporary failure) are retried with exponential backoff and suppressed after 3–5 retries. Complaints — recipient hit "spam" — suppress immediately and forever. Re-engagement campaigns should target the engaged half of your list every 90 days; non-openers in 180+ days come off entirely. Every self-hosted platform exposes this; AcelleMail's per-list suppression model integrates with the bounce-handler webhook hooked up at step 4 above.

Engagement signals + IP reputation

Mailbox providers increasingly weight recipient engagement: opens, clicks, "not spam" gestures, replies. Sending the same message to your most-engaged 10% drives reputation up; sending to your dead 50% drags it down. Self-hosted means you have raw access to engagement data — segment campaigns to the engaged half, suppress the long-cold half, and watch the bounce + complaint rates. Tools to monitor: Google Postmaster Tools (free), Microsoft SNDS (free), the relay's own dashboard. Acelle's automation flows can branch on engagement-score custom fields, which is the cleanest place to encode the rule.

§9 · Compliance

GDPR, data residency, and the Schrems II question.

GDPR (EU 2016/679) treats subscriber email addresses + custom fields as personal data, with seven principles that bind the data controller (you) and the data processor (your hosting + sending vendors). The big practical implications:

  • Lawful basis. For marketing email, consent or legitimate interest. Both require a record (timestamp, IP, source) and an unsubscribe path. The List-Unsubscribe RFC 8058 one-click header is non-negotiable since Feb 2024 for Gmail/Yahoo bulk senders.
  • Data subject rights. Right of access (export their record), right to erasure (delete on request), right to portability. All three are SQL queries on a self-hosted setup; on SaaS they're vendor support tickets.
  • Data Processing Agreement (DPA). Your relationship with each processor needs a written agreement specifying retention, security measures, sub-processors. SaaS platforms publish theirs; self-hosted you have one (with the host) plus one (with the sending relay) — fewer parties, simpler audit trail.
  • International transfers (Schrems II). The 2020 Court of Justice decision invalidated Privacy Shield as the legal basis for EU→US personal data transfers, making cross-border SaaS storage a moving target. Self-hosted on EU infrastructure (Hetzner Falkenstein, OVH Strasbourg, AWS Frankfurt with EU-only configuration) sidesteps the question; the data never crosses a border.

Practical residency checklist:

  • VPS region matches your customers' jurisdiction (eu-west-1 / Frankfurt for EU, us-east-1 for US).
  • Sending relay region pinned (SES region selector — switching from us-east-1 to eu-west-1 is one config field).
  • Backups stored in the same region (S3 with a region-locked bucket, encrypted at rest).
  • Database backups, log retention, and tracking-pixel hosts all on the same continent as the application.
  • Sub-processors documented in your privacy policy (e.g. "We use AWS SES eu-west-1 for email delivery; data does not leave the EU").

For more on AcelleMail's security posture and the underlying audit-log + RBAC model, see /security. None of this constitutes legal advice — engage a privacy lawyer for the DPA review.

§10 · Honest trade-offs

When self-hosted is the wrong call.

Self-hosted is not strictly better than SaaS — it's better for specific shapes of team and use case, and worse for others. Three patterns where the SaaS option is the right answer:

Under 1,000 subscribers, no engineering on hand

A 500-contact list on Mailchimp Free costs $0/month. Self-hosted at that scale costs the same in dollars but adds an evening of setup and ongoing OS-patch maintenance. Below the 1K subscriber line, the SaaS free-tier is rational. Re-evaluate above 5K (when the SaaS pricing kicks in) or when you outgrow the free tier's feature ceiling.

No devops, no plans to acquire it

The application self-updates monthly. The OS needs patches. TLS certs renew. Queue workers crash and need restart. None of this is heavy lifting, but it requires someone who's comfortable with SSH and a runbook. If your team is marketers-only and you have no path to a contractor or a managed-Laravel service, the abstraction tax of SaaS is paying for someone else's on-call.

Regulated industry needing certified processors

HIPAA-regulated US healthcare, certain financial-services frameworks, government contractors — these sometimes require their email vendor to hold a specific certification (HITRUST, FedRAMP, SOC 2 Type II), with penalties for using non-certified processors. Some SaaS platforms have those certifications; self-hosted you're outsourcing certification to your hosting provider + sending relay, which works for AWS-backed deployments but adds audit overhead. Check first; pivot to SaaS if the cert requirement is binding.

The honest framing: self-hosted shifts the work, it doesn't eliminate it. If shifted-to-you is the wrong place for that work, SaaS is correct. For the much larger group where shifted-to-you means "shifted to your existing devops capacity," self-hosted compounds the longer you run it.

§11 · FAQ

Frequently asked questions.

Is self-hosted email marketing free?

The software can be free (Listmonk, Mautic) or one-time paid (AcelleMail $80, Sendy $59). The hosting and sending relay are paid: a $5–$20/month VPS plus Amazon SES at $0.10 per 1,000 sends. At 10,000 subscribers sending one campaign per week, total operating cost is roughly $9/month — versus $135/month on Mailchimp Standard. See §4.

Do I need to run my own SMTP server?

Almost never. The standard architecture pairs a self-hosted application (AcelleMail, Listmonk, Mautic) with a cloud sending relay (Amazon SES, Mailgun, SendGrid). The relay handles the SMTP transactions, IP reputation, and bounce feedback; you keep the list, the campaigns, and the analytics on your server. Running your own MTA (Postal, Postfix) only makes sense above ~10M sends/month or for specific regulatory requirements — see §5.

How long does setup take for a first-time installer?

A weekend including DNS propagation. The application install is 15–30 minutes (download, upload, configure DB credentials, run the installer). Setting up SES with verified identities is another 30 minutes plus 24h for AWS to flip your account out of sandbox mode. DNS records (SPF, DKIM, DMARC) are 10 minutes plus 0–48h for propagation. Sending the first test campaign is the next 15 minutes.

Will mailbox providers treat my self-hosted sends as spam?

Only if you treat your list poorly. SPF, DKIM, DMARC alignment plus low bounce rate (< 2%) and low complaint rate (< 0.1%) are the inputs Gmail/Outlook score on. A self-hosted setup behind a major sending relay (SES, SendGrid) inherits the relay's IP reputation; your job is keeping the From-domain reputation healthy through hygiene and engagement-targeted sends — see §8.

Can I migrate my Mailchimp list to a self-hosted platform?

Yes. Mailchimp Audience exports cover contacts, merge fields, tags, and campaign history as CSV. Most self-hosted platforms have a CSV importer that maps merge fields to custom fields. Plan a one-week parallel-run window: send through both providers to a cohort, compare deliverability, switch primary. Automation flows are rebuilt manually but typically take an afternoon for a five-step sequence.

Is self-hosted email marketing GDPR-compliant?

It can be — compliance is determined by how you operate, not the deployment model. Self-hosted makes some GDPR obligations easier (data subject rights are SQL queries; data residency is hosting region; sub-processors are countable on one hand). It doesn't remove your obligations as the data controller. See §9 for the residency checklist; consult a privacy lawyer for the DPA review.

What's the difference between AcelleMail, Listmonk, and Mautic?

Project shape. AcelleMail is multi-tenant SaaS-shaped (Customer + Plan model, plugin SDK, REST API, payment gateways) — fits resellers and SaaS founders. Listmonk is single-tenant newsletter-shaped (Go single binary, lean UI) — fits solo creators and high-volume newsletter teams. Mautic is automation-shaped (lead scoring, CRM bridges, drip flows) — fits B2B sales-driven teams. See the §6 platform table.

Can I send unlimited emails from a self-hosted setup?

"Unlimited" by the application — yes, the software has no contact or send caps. Bounded by your sending relay's published rate (SES is $0.10 per 1,000 sends, no cap; production-mode quotas start at 50K/24h and scale on request) and your queue worker throughput. For practical purposes, self-hosted has no platform-imposed ceiling — only the cost-per-send and the time it takes the queue to drain.

Does self-hosted include marketing automation and drip campaigns?

Yes on AcelleMail and Mautic — both ship visual flow builders with conditional branches, time delays, and event triggers. Listmonk is intentionally newsletter-only (campaign + transactional, no flow builder). Sendy has basic auto-responders. The AcelleMail automation page walks the flow surface in detail.

What happens if my server goes down during a campaign?

Campaign jobs sit in the queue (Redis or DB) and resume when the worker comes back online. SES holds your API quota until you make the call; you don't lose paid send credits. Practical mitigations: monitoring (Uptime Kuma, healthcheck.io) for the queue worker process; a database-backed queue (atomic, survives restarts) if you can't run Redis with persistence; one warm standby box for high-stakes lists. The blast radius of a 30-minute outage is "campaign delivery slips by 30 minutes," not "campaign lost."

Stop renting your subscriber list. Start owning it.

AcelleMail is a self-hosted email-marketing platform with multi-tenant billing, a documented plugin SDK, and built-in drivers for Amazon SES, Mailgun, SendGrid, SparkPost, and any generic SMTP. Standard licence $80 one-time. Lifetime updates. Try the live demo before you buy.

Get AcelleMail — $80 Try Live Demo