Billionmail vs Listmonk: Self-Hosted Email Platform Comparison (2026)
Billionmail and Listmonk are both self-hosted, open-source email tools. But comparing them head-to-head misses the point: they solve different problems, and the most effective self-hosted email stack often uses both together.
TL;DR
| Billionmail | Listmonk | |
|---|---|---|
| License | AGPL-3.0 | AGPL-3.0 |
| GitHub stars | ~14,600 | ~19,300 |
| Stack | Go + Vue.js | Go + Vue.js |
| Primary role | SMTP delivery server + IP reputation management | Newsletter platform — subscriber management + campaigns |
| Idle RAM | ~300 MB | ~512 MB |
| Needs SMTP relay? | No — it is the SMTP server | Yes — requires an SMTP relay to send |
| Dedicated IP required? | Yes (for deliverability) | No (uses relay IP) |
What each tool does
Billionmail: the delivery engine
Billionmail is a full SMTP server with a web UI for managing IP reputation, bounce handling, and bulk sending. It handles the transport layer: accepting messages from an application (or from Listmonk), negotiating SMTP with receiving mail servers, processing bounces, tracking delivery status, and managing sender IP reputation.
Key capabilities:
- Self-hosted SMTP server (no external relay needed)
- Dedicated IP management and warming workflows
- Bounce processing (hard and soft) with automatic suppression
- DKIM, SPF, and DMARC configuration assistance
- Delivery analytics per domain and IP
Billionmail does not have a subscriber list manager, campaign editor, or newsletter scheduling UI. It is infrastructure, not a marketing tool.
Listmonk: the campaign manager
Listmonk is a high-performance newsletter and mailing list platform written in Go. It manages subscribers, campaign creation, scheduling, list segmentation, template rendering, and analytics. Listmonk does not send email itself — it dispatches messages through an SMTP relay that you configure.
Key capabilities:
- Subscriber import (CSV) and list segmentation
- Campaign editor with template support (HTML + plain text)
- Transactional message API (for app-triggered emails)
- Open and click tracking
- Unsubscribe management (double opt-in supported)
- Scheduled and recurring campaigns
Listmonk's SMTP relay can be Billionmail (self-hosted), Postal (self-hosted), or an external service like Postmark or Mailgun.
Feature comparison
| Feature | Billionmail | Listmonk |
|---|---|---|
| SMTP delivery | ✓ (primary function) | ✗ (relies on relay) |
| IP reputation dashboard | ✓ | ✗ |
| Bounce handling | ✓ (automatic) | ✓ (via relay webhooks) |
| Subscriber management | ✗ | ✓ |
| Campaign editor | Basic | ✓ (rich) |
| List segmentation | ✗ | ✓ |
| Open/click analytics | Basic | ✓ |
| Transactional API | ✓ | ✓ |
| Double opt-in | ✗ | ✓ |
| Template engine | ✗ | ✓ (Go templates) |
RAM and infrastructure
Billionmail (on a dedicated IP VPS):
| Container | Idle RAM |
|---|---|
| billionmail-app | ~200 MB |
| billionmail-db (PostgreSQL) | ~100 MB |
| Total | ~300 MB |
Listmonk:
| Container | Idle RAM |
|---|---|
| listmonk | ~80 MB |
| PostgreSQL | ~150 MB |
| Total | ~230 MB |
Both tools are efficient Go binaries. Listmonk in particular is remarkably lean — the Go binary itself uses under 100 MB idle.
Actually use both
The most capable self-hosted email stack pairs Listmonk as the front end with Billionmail as the delivery layer.
How they connect:
- Listmonk manages your subscriber lists, campaign editor, and scheduling
- Listmonk is configured to dispatch via Billionmail's SMTP endpoint (typically
smtp://billionmail-host:587) - Billionmail handles DKIM signing, IP reputation, bounce processing, and delivery to recipient mail servers
- Bounce webhooks from Billionmail feed back into Listmonk's suppression list
This combination gives you a complete email marketing platform with no per-email fees and no third-party data sharing. The main operational requirement is a dedicated IP and a patient IP warming process for new senders.
When to use an external relay instead of Billionmail:
If you are sending fewer than ~5,000 emails per month and don't want to manage IP reputation, a transactional SMTP service (Postmark, Mailgun, Resend) as Listmonk's relay is simpler. Billionmail makes economic sense at higher volumes — roughly when your monthly email volume exceeds what transactional SMTP plans price-competitively.
Which should you choose?
Choose Listmonk alone (with an external relay) if:
- You are under ~5,000 emails/month
- You want to avoid managing IP reputation and warm-up
- You have an existing Postmark or Mailgun account
Choose Billionmail alone if:
- You need a self-hosted SMTP server to replace an external transactional relay
- You are not running a newsletter — just app-triggered transactional emails
- IP reputation management is a first-class concern
Use both together if:
- You are running a newsletter or outreach list above ~10,000 emails/month
- You want full data ownership with no per-email SaaS fees
- You have the operational maturity to manage IP reputation and DKIM/SPF/DMARC
Further reading
- Self-Host Billionmail — Docker Compose setup, dedicated IP configuration, and deliverability checklist
- Self-Host Listmonk — subscriber import, campaign editor, and SMTP relay configuration
Yes. Combined idle RAM is roughly 530 MB — well within a 2 GB VPS. They can share a PostgreSQL instance (separate databases) or run independent database containers. A Liquid Web 4 GB Managed VPS with dedicated IP is a comfortable starting point for the combined stack.
Technically no, but practically yes. If you share an IP with other senders, your deliverability depends on their sending behaviour. Billionmail's IP reputation tools are most useful when you control the IP. Liquid Web Managed VPS plans include IP allocation — confirm dedicated IP availability when ordering.
Yes. Listmonk exposes a transactional API endpoint that your application can call to send templated, individually-addressed messages outside of campaign scheduling. This makes it a viable Postmark or SendGrid replacement for app-triggered emails, especially when combined with Billionmail for delivery.
