Introduction
"Billion emails. Any business. Guaranteed."
This is Part 58 of the "One Open Source Project a Day" series. Today's project is BillionMail (GitHub).
Want to self-host a mail server, run a Newsletter, or do email marketing without SaaS fees and data leakage? BillionMail is an open-source mail server + Newsletter + email marketing solution: 8 minutes from install to successful sending, fully self-hosted, no monthly fees, privacy-first. Supports domain setup, DNS verification, free SSL, advanced analytics, contact management, and integrates RoundCube WebMail.
What You'll Learn
- BillionMail's core capabilities and positioning
- Three-step flow: install, domain, campaign
- Installation: script, Docker, aaPanel one-click
- Comparison with commercial email marketing platforms
- Management scripts and WebMail
Prerequisites
- Basic understanding of email (SMTP, DNS)
- Linux server or Docker environment (optional)
Project Background
Project Overview
BillionMail is an open-source mail server and email marketing platform maintained by the aaPanel team, for businesses and individuals sending newsletters, promotional emails, and transactional messages. It provides full control: domain management, DNS verification, auto SSL, advanced analytics (delivery, open, click rates), contact management, and reusable templates. Fully self-hosted, data stays local, no third-party tracking.
Team
- Team: aaPanel (aapanel.com)
- Background: aaPanel is a well-known open-source server panel; BillionMail extends its email ecosystem
- Website: billionmail.com
Project Data
- ⭐ GitHub Stars: 13.7k+
- 🍴 Forks: 1.4k+
- 📄 License: AGPL-3.0
- 🌐 Website: billionmail.com
- 🌐 Live Demo: demo.billionmail.com/billionmail (username/password: billionmail)
- 💬 Community: Discord, GitHub Issues
Core Features
Main Capabilities
| Capability | Description |
|---|---|
| Mail server | Postfix, Dovecot, full SMTP/IMAP |
| Newsletter | Subscriber lists, tags, scheduled sending |
| Email marketing | Promotional emails, transactional emails, template management |
| Advanced analytics | Delivery, open, click rates |
| Contact management | Contacts, lists, tags |
| WebMail | RoundCube integration, access via /roundcube/ |
| Domain & SSL | Add sending domain, DNS verification, auto free SSL |
Use Cases
- Personal/small-team Newsletter: Blog subscriptions, product updates
- E-commerce campaigns: Promotions, coupons, order notifications
- SaaS transactional email: Registration, password reset, billing
- Full self-hosting: Data stays on your server, privacy and compliance
Quick Start
Script install (~8 minutes):
cd /opt && git clone https://github.com/aaPanel/BillionMail && cd BillionMail && bash install.shDocker install:
cd /opt && git clone https://github.com/aaPanel/BillionMail && cd BillionMail
cp env_init .env
# Edit .env
docker compose up -d || docker-compose up -daaPanel one-click: Log in to aaPanel → Docker → One-click install BillionMail
Three steps to send:
- Install: Use any of the methods above
- Connect domain: Add sending domain → Verify DNS → Auto SSL
- Build campaign: Write or paste email → Choose list & tags → Set send time or send now
Management Scripts
| Command | Description |
|---|---|
bm help | Management help |
bm default | View default login info |
bm show-record | Show domain DNS records |
bm update | Update BillionMail |
Project Advantages
| Comparison | BillionMail | Mailchimp/SendGrid etc. | Bare Postfix |
|---|---|---|---|
| Cost | Free, no monthly fees | Pay per volume/subscription | Free, manual ops |
| Data | Fully self-hosted | On third party | Self-hosted |
| Features | Server + marketing + analytics | Marketing focus | Sending only |
| Onboarding | ~8 minutes | Sign up and go | Multi-component setup |
| Open source | AGPL-3.0 | Closed | Components open |
Deep Dive
Tech Stack
- Languages: Go 92.1%, Shell 5.1%, HTML, JavaScript
- Mail components: Postfix, Dovecot, Rspamd
- Deployment: Docker, docker-compose, Shell install script
Directory Structure
BillionMail/
├── core/ # Core logic
├── conf/ # Config
├── data/ # Data
├── Dockerfiles/ # Docker builds
├── docker-compose.yml
├── install.sh # Install script
├── update.sh # Update script
├── bm.sh # Management script entry
└── env_init # Env templateWhy BillionMail?
- Fully open source: No hidden costs, no vendor lock-in
- Advanced analytics: Delivery, open, click metrics
- Unlimited sending: No send limits
- Reusable templates: Professional marketing templates
- Privacy-first: Data stays local, no third-party tracking
- Self-hosted: Run on your own server, full control
Project Links and Resources
Official Resources
- 🌟 GitHub: https://github.com/aaPanel/BillionMail
- 🌐 Website: billionmail.com
- 🌐 Live Demo: demo.billionmail.com/billionmail
- 💬 Discord: discord.gg/asfXzBUhZr
- 🐛 Issues: GitHub Issues
Target Audience
- Individuals/teams needing self-hosted mail server or Newsletter
- Users wanting to avoid SaaS fees and keep data in-house
- aaPanel server administrators
- Developers needing email marketing, Postfix, Dovecot
Visit my homepage for more useful knowledge and interesting products