Self-Hosted Email Marketing Software Compared: Mautic, Listmonk, Sendy, Dittofeed and More (2026)
By Art Kukharenko · Published · Updated
Browse email resourcesSelf-hosted email marketing software is a campaign application you run on your own servers, so the subscriber database stays with you. Mail can still leave through your own mail transfer agent (MTA) or through a relay such as Amazon SES. In 2026 the active open-source choices are Mautic, Listmonk, Keila, phpList and Dittofeed; Sendy and Mailcoach are paid; Mailtrain has had no release since 2021. The right pick depends on licence, sending model and consent tooling, compared below.
Who this is for: marketing-operations leads, architects and DPOs choosing a self-hosted Mailchimp alternative, and teams deciding when an application is no longer enough. Part of the email and activation infrastructure hub; for the market backdrop, read MailOps in 2026.
What "self-hosted" covers, and what it does not
Three layers hide inside the phrase:
- Application layer: lists, segments, templates, campaigns, tracking, unsubscribe pages. Every project below provides this.
- Sending layer: the MTA that opens port 25 connections to Gmail, Outlook.com, Yahoo and iCloud, or the relay that does it for you. Only Postal and Mailtrain (through its built-in ZoneMTA) ship a real MTA; the rest hand mail to SMTP or an API.
- Data layer: who may be mailed, on what basis, with what history. Most tools keep this inside the email database, which becomes a problem once SMS, push and ad audiences exist.
Terms used here: self-hosted means you operate the software; on-premise means in your own data centre; private cloud means a dedicated environment in your cloud account or a vendor's; customer-owned means you hold the data, keys and upgrade timing; sovereign means no foreign authority can compel access. Self-hosting an application meets only the first.
Master comparison: ten projects, one table
Data comes from each project's LICENSE file, the GitHub API and documentation, collected on 2026-10-17 7–20. "Not found" means the pages opened do not say; it is not proof of absence.
Scroll horizontally to compare all columns ↔
| Project | Licence (from LICENSE file) | Stack | Sending model | Deliverability tooling | Consent and suppression | Scale signal | Last release / last commit |
|---|---|---|---|---|---|---|---|
| Mautic | GPL-3.0-or-later | PHP 8.2–8.5, MySQL 5.7+ or MariaDB 10.2+ | Symfony Mailer transports: SMTP default, API transports via Composer; optional queue (Doctrine, Redis, AMQP, Beanstalkd, SQS) | IMAP bounce monitoring; ESP webhook callbacks (see note); one-click header present in code | Do Not Contact per channel, preference centre, frequency rules | No benchmark found; queue workers for larger instances | 7.2.1 (2026-09-23) / 2026-10-15 |
| Listmonk | AGPL-3.0 | Go single binary, PostgreSQL | SMTP with multiple servers and queues, sliding-window rate limits; HTTP "messengers" for non-email | POP3 bounce mailbox; webhooks for SES, SendGrid, Postmark, Azure Communication Services, Forward Email, Lettermint; thresholds that blocklist; one-click header in code | Single and double opt-in; unsubscribed and blocklisted states; subscriber page with data export and wipe | Vendor cites a 7M+ campaign at 57 MB peak RAM | v6.2.0 (2026-06-26) / 2026-10-17 |
| Sendy | Proprietary, one domain per licence; $69 one-time (vendor page) | PHP, MySQL or MariaDB | Amazon SES only | Bounce and complaint handling via Amazon SNS; SES sandbox exit needed; warm-up not mentioned | Single and double opt-in, custom unsubscribe pages, inactive-subscriber housekeeping | Bounded by your SES quota | v7.1.6 shown on vendor site, release date not stated |
| Dittofeed | MIT core; multi-tenancy, embedding and white-labelling sit in a separate closed-source codebase | TypeScript; PostgreSQL, ClickHouse, Temporal, object storage; Kafka optional | Provider integrations: SES, SendGrid, Postmark, Resend, SMTP, Mandrill; also SMS, push, webhooks | Provider-side; one-click header in code | Subscription groups, custom subscription page, public subscription API | ClickHouse plus optional Kafka write mode; no sending benchmark found | v0.23.0 stable (2025-12-01), v0.24.0 alphas in Oct 2026 / 2026-10-12 |
| Mailtrain | GPL-3.0 | Node.js, MySQL or MariaDB | Built-in ZoneMTA or other SMTP | ZoneMTA: DKIM signing, IP pools, warm-up ratio, bounce handling; DKIM key set in Send Configurations | Lists, segments, custom fields; no consent tooling found | README minimum: 2 vCPU, 4 GB RAM | v2.20210609.0 (2021-06-09) / 2022-12-11 |
| Keila | AGPL-3.0-or-later | Elixir, PostgreSQL, Docker | SMTP, SES, SendGrid, Mailgun, Postmark | Automatic SES bounce and complaint handling; contacts marked unreachable; one-click header in code | Double opt-in forms; active, unsubscribed, unreachable states; protected unsubscribe links | Per-sender rate limits; no benchmark | 0.30.3 (2026-09-06) / 2026-10-02 |
| Mailcoach Self-Hosted | Commercial: $249 single domain, $999 unlimited, one year of updates included | PHP, Laravel | Postmark, Resend, SES, Mailgun, SendGrid, Brevo | Not found | Not found | Not found | 10.0.0 (2026-03-09) |
| phpList | AGPL-3.0 | PHP, MySQL | SMTP or Amazon SES (built-in support) | Policy and regex bounce processing; per-domain throttling; queue throttling; one-click header in code | Double opt-in, subscriber preferences, do-not-send list | README claims 25 billion campaign messages in 2018 across installations | v3.6.17 (2026-08-09), 3.7.0 RC5 / 2026-09-18 |
| Plunk | AGPL-3.0 | TypeScript, Docker | Self-hosted version requires AWS SES | DKIM and SPF records generated through SES; bounce and complaint events via SNS; one-click header in code | Contacts, segments; unsubscribe handling not found in docs opened | None published | v0.16.0 (2026-10-08) / 2026-10-17 |
| Postal | MIT | Ruby, MariaDB 10.6+, Docker | Own MTA delivering from your IPs; SMTP and HTTP API | IP pools, DKIM signing, DNS checks, webhooks | Suppression list for undeliverable addresses | Recommended 4 GB RAM, 2 cores, 25 GB disk; no benchmark | 3.3.7 (2026-06-03) / 2026-10-01 |
Notes on the table:
Reading the table: five practical observations
- Only two projects bring an MTA. Postal is a full mail server; Mailtrain bundles ZoneMTA 141520. Everything else assumes SMTP or an API from someone else, so deliverability still depends on a third party.
- Maintenance varies sharply. Mautic, Listmonk, Keila, phpList and Plunk have commits within five weeks. Dittofeed's last stable tag is from December 2025, with alpha tags since. Mailtrain has had no release since June 2021 and no default-branch commit since December 2022 14; treat it as legacy.
- Licence changes what you can do with a fork. MIT (Dittofeed core, Postal) is permissive; GPL and AGPL carry copyleft 710; Sendy and Mailcoach are commercial, and Mailcoach single-domain licences may not be built into a SaaS product 17.
- Stack weight differs widely. Listmonk is one binary plus PostgreSQL; Dittofeed's compose files add ClickHouse, Temporal and object storage 13. Choose by what your team already operates.
- Consent tooling is thin outside Mautic, Listmonk, Keila and Dittofeed, and scale signals are mostly vendor claims. Where the table says "not found", plan to build suppression sync yourself, and load-test your own bounce and unsubscribe paths.
Mautic vs Listmonk
Pick Mautic when you need marketing automation: behavioural segments, lead scoring, multi-step campaigns, per-channel Do Not Contact and a preference centre 9. The cost is a heavier PHP and MySQL estate, cron or queue workers, and the Composer-versus-transport caveats above. Pick Listmonk when the job is newsletters and announcements at high volume with a small footprint: one Go binary, PostgreSQL, configurable bounce handling and a documented API 1011. Listmonk describes itself as a one-way mailing list manager, not a journey tool.
Listmonk vs Sendy
Both are cheap to run. Sendy costs a one-time $69 and sends only through Amazon SES, so your reputation, bounce stream and sandbox limits are SES's 12. Listmonk is AGPL, free, and relay-agnostic: you can point different campaigns at different SMTP servers and receive bounce webhooks from several providers 10. Sendy suits an SES-standardised agency with client logins; Listmonk suits teams that want to switch relays without migrating software. Neither stores consent history beyond list status.
Dittofeed: what "open source" means here
Dittofeed's repository is MIT licensed and the project says it is free forever 13. Its README adds that a licensed closed-source codebase provides multi-tenancy, embedding and white-labelling. It is closer to a customer-engagement platform (events, journeys and segments across email, SMS and push) than to a newsletter tool, which explains the heavier stack. For plain campaigns it is more than you need; for event-triggered messaging fed from your own data it is a credible self-hosted option, and it sits beside the projects in our open-source customer data platform comparison.
Choosing a self-hosted Mailchimp alternative by situation
Scroll horizontally to compare all columns ↔
| Your situation | Start with | Why |
|---|---|---|
| Newsletters, small team, PostgreSQL available | Listmonk | One binary, relay-agnostic, bounce handling |
| Lead scoring and multi-step automation | Mautic | Broadest automation of the group |
| Agency on Amazon SES, wants one-time pricing | Sendy | Simple, SES-only |
| Laravel shop that wants an in-app email layer | Mailcoach | Built for Laravel; confirm licence terms |
| Event-driven product messaging across channels | Dittofeed | Journeys and segments; heavier stack |
| You must run the MTA yourself | Postal plus an application above | Real MTA with IP pools and DKIM |
| Small list, no ops capacity, no residency constraint | A SaaS email service | Self-hosting without a deliverability owner is a bad idea |
What self-hosting does not fix: deliverability
Software choice does not change what mailbox providers demand. Gmail's rules apply from February 2024 to every sender: SPF or DKIM, valid forward and reverse DNS, TLS and a spam rate under 0.3 percent. Senders of about 5,000 or more messages a day to personal Gmail accounts also need SPF, DKIM and DMARC, an aligned From domain and one-click unsubscribe for marketing mail; that bulk status is permanent once reached, and messages from subdomains count toward the same primary domain 12. Yahoo asks bulk senders for SPF, DKIM, DMARC at least p=none, one-click unsubscribe and unsubscribes honoured within two days, without publishing a volume threshold 3. Outlook.com applies the same logic to domains sending 5,000 or more messages a day: Microsoft says non-compliant mail goes to junk first, and its support page documents the rejection 550 5.7.515 45. Apple's iCloud Mail asks for authentication, consistent IPs and domains, and separate marketing and transactional streams 6. RFC 8058 requires both unsubscribe headers to be covered by the DKIM signature 21, so check that your relay or MTA signs them. The detail is in Email Authentication in 2026.
Relay or own MTA changes who carries the reputation work. With a relay, SES or SendGrid manages IPs; you manage domains, content and lists. With your own MTA you also carry reverse DNS, port 25 access, blocklist checks and gradual volume ramps: Gmail asks senders to increase volume gradually 1, and Postal's own prerequisites warn that your provider's IP may already be blocklisted and that many providers block port 25 20. Postal's own documentation says running a mail server "isn't something for everyone" 20. For measurement, see Inbox Placement vs Delivery Rate.
Self-hosted email marketing and GDPR
Self-hosting keeps the subscriber table in your infrastructure, simplifying access control and residency. It does not make you compliant:
- A relay is a processor. If mail passes through SES, SendGrid or Postmark, the controller must use only processors giving sufficient guarantees and bind them by contract to documented instructions (Art. 28(1), 28(3)(a)) 22. US relays also raise transfer questions; see GDPR transfers after Latombe.
- Objection to direct marketing is absolute. Art. 21(2)–(3) says personal data "shall no longer be processed" for direct marketing once the person objects 23. The UK ICO advises keeping a suppression record rather than erasing the address, so the objection survives re-imports 24.
- Withdrawal must be as easy as giving consent (Art. 7(3)) 25. Tools that store unsubscribes per list rather than per person struggle here.
- Data subject tooling. Listmonk's subscription page template offers data export and wipe 10; Mautic offers per-channel Do Not Contact and frequency rules 9. Neither reaches your CRM, support desk or SMS system on its own.
The architecture for propagating a withdrawal everywhere is in Consent Withdrawal Across Channels.
When to go infrastructure-grade
An application plus a relay is the right answer for most senders. It stops being enough when one or more of these signals appears:
Scroll horizontally to compare all columns ↔
| Signal | Why application plus relay fails | What infrastructure-grade adds |
|---|---|---|
| A regulator, contract or security review forbids third-party relays seeing recipient data or content | The relay is a processor and a transfer, and it belongs in your DORA register of information where that applies 26 | MTA inside your boundary; fewer processors to document |
| Several brands, streams or regulatory notices must be isolated | On shared IPs every sender's reputation is affected 1; Apple asks for consistent IPs and separate marketing and transactional streams 6 | IP pools per stream (SES and Postal both document this) 2027; see transactional vs marketing separation |
| You need to control warm-up, throttling per receiving domain and retry policy | Relays decide for you | MTA-level control (ZoneMTA's warm-up ratio, per-domain throttling in phpList) 1518 |
| Auditors ask who suppressed whom, and when | Application logs are mutable and per-tool | An append-only audit trail tied to the consent record |
| Bulk-sender obligations are permanent | Gmail's bulk status never expires 2 | Monitoring, alerting and DMARC reporting as standing operations |
| Consent lives in more than one system | Each tool holds its own unsubscribe list | One consent state upstream of every channel |
The last row is where email meets the data layer. Deliverability and compliance both reduce to state: who may be contacted, on what basis, with what history. If that state lives inside an email application, SMS, push and ad audiences drift from it. The durable pattern keeps consent and audience state in a customer data platform (CDP) you own and treats the email application and MTA as downstream destinations fed by events. That is one reason to compare self-hosted email tools alongside self-hosted customer data platforms. PrivyCDP is one example: a customer-owned, single-tenant customer data platform with customer-held keys, an immutable append-only audit ledger and open APIs and webhooks; it is not an email sender. iAge Technologies, PrivyCDP's owner, also offers email infrastructure under the InboxSuite name.
Self-hosting the MTA is a bad idea if nobody will read DMARC reports, watch Postmaster Tools and answer blocklist tickets; a reputable relay under a signed data processing agreement is then the safer choice.
Checklist: choosing and running a self-hosted platform
- Write down whether you need an application only, a relay, or your own MTA.
- Confirm the licence (MIT, GPL, AGPL, commercial) against your fork and hosting plans, and check release dates; avoid projects with years of silence.
- Publish SPF, DKIM and DMARC for the sending domain before the first send; align the From domain.
- Add RFC 8058 one-click headers to marketing mail and sign them with DKIM.
- Wire bounce and complaint webhooks; set thresholds that blocklist hard bounces and complaints.
- Decide where consent and suppression live, and test that an unsubscribe propagates to every channel.
- Sign a data processing agreement with every relay and record it in your vendor register.
- Separate marketing and transactional streams by subdomain and, where volume justifies, IP pool.
- Monitor Postmaster Tools, DMARC aggregate reports and Microsoft SNDS weekly.
- Load-test the unsubscribe and bounce paths, not only the send path.
If your email programme must sit inside a regulated boundary, with the sending layer, consent state and audit trail all under your control, start with the deployment qualification and see how the pieces fit. Back to the email hub.
Frequently asked questions
What is the best self-hosted email marketing software?
There is no single best. Listmonk suits high-volume newsletters on a small footprint, Mautic suits automation and lead scoring, Keila suits small teams wanting a clean newsletter tool, Dittofeed suits event-driven messaging, and Sendy suits agencies standardised on Amazon SES. Choose by sending model and consent tooling first, then by maintenance activity.
Mautic vs Listmonk: which should I choose?
Choose Mautic for behavioural segments, lead scoring, multi-step campaigns and a preference centre, if you can run PHP, MySQL and queue workers. Choose Listmonk for newsletters and announcements on a single Go binary with PostgreSQL, relay-agnostic SMTP and bounce webhooks. Listmonk describes itself as a one-way mailing list manager, not an automation suite.
Listmonk vs Sendy: what is the difference?
Sendy is a paid PHP application that sends only through Amazon SES, priced at a one-time $69 per domain on the vendor's site. Listmonk is free under the AGPL, written in Go, and works with any SMTP server or supported bounce webhook. Pick Sendy for an SES-only agency setup, Listmonk when you want to change relays without changing software.
Is Dittofeed really open source?
The core repository is MIT licensed, and the project says it is free forever. Its README also states that a licensed, closed-source codebase adds multi-tenancy, embedding and white-labelling. The open-source version is usable for single-organisation self-hosting, but check whether features you need sit in the closed codebase.
Do I need my own MTA, or can I relay through Amazon SES?
Most senders should relay: SES, SendGrid or Postmark manage IPs and bounce feedback while you manage domains, authentication and lists. Run your own MTA, such as Postal or ZoneMTA, only when you need IP pools, per-domain throttling or no third-party processor, and you can staff reverse DNS, blocklist monitoring and gradual warm-up.
Is self-hosted email marketing GDPR-compliant by default?
No. Self-hosting keeps the subscriber database in your control, but you remain the controller. Relays are processors needing a contract under Article 28, objections to direct marketing must be honoured absolutely under Article 21, and withdrawal of consent must be as easy as giving it. Software helps; the processes and records are yours.
Sources
- Google, Email sender guidelines Open source
- Google, Email sender guidelines FAQ Open source
- Yahoo, Sender best practices — ; FAQs Open source · Additional source
- Microsoft, Fix NDR error 550 5.7.515 in Outlook.com Open source
- Microsoft, Outlook.com sender support (postmaster) Open source
- Apple, iCloud Mail bulk sender requirements Open source
- Mautic, LICENSE.txt and repository metadata Open source
- Mautic 7 requirements Open source
- Mautic documentation: settings, email channel, contacts Open source · Additional source · Additional source
- Listmonk, LICENSE, README, bounce and templating docs Open source · Additional source · Additional source
- Listmonk, project site Open source
- Sendy Open source · Additional source
- Dittofeed, repository, LICENSE and documentation Open source · Additional source
- Mailtrain, repository Open source
- ZoneMTA Open source
- Keila, repository and changelog Open source · Additional source
- Mailcoach Self-Hosted Open source · Additional source · Additional source
- phpList Open source · Additional source
- Plunk Open source · Additional source · Additional source
- Postal Open source · Additional source · Additional source · Additional source
- IETF, RFC 8058 Open source
- GDPR Article 28 Open source
- GDPR Article 21 Open source
- ICO, Right to object Open source
- GDPR Article 7 Open source
- CSSF, DORA register of information collection Open source
- AWS, Dedicated IP pools in Amazon SES Open source
Put this evaluation into practice.
Assess your deployment requirementsThis article is general information, not legal advice.
Further reading
- Email and customer data infrastructure
- MailOps and email infrastructure
- Deployment readiness checklist
- Email Suppression List Management Across
- Email Authentication Requirements 2026
Published: · Updated:
Publication date recorded for the approved release. Editorial updates do not establish legal approval or a customer result.