Introduction
mailcow is a fully containerized mail server suite that bundles Postfix, Dovecot, ClamAV, Rspamd, SOGo, and a modern admin UI into a single Docker Compose stack. It aims to make running a production-grade, self-hosted email server as painless as possible while retaining full control over your mail infrastructure.
What mailcow Does
- Sends and receives email via Postfix (SMTP) with TLS, DKIM, SPF, and DMARC enforcement
- Stores and serves mail through Dovecot with IMAP and POP3 access
- Filters spam using Rspamd with Bayesian learning and custom rules
- Scans attachments for malware via ClamAV integration
- Provides SOGo groupware for webmail, calendars, contacts, and ActiveSync
Architecture Overview
mailcow orchestrates over a dozen Docker containers: Postfix handles SMTP, Dovecot manages mailbox storage, Rspamd filters spam, ClamAV scans for viruses, SOGo provides webmail and groupware, and Nginx-based Acme handles reverse proxying and TLS certificates via Let's Encrypt. A MySQL/MariaDB database stores configuration, and Redis provides caching. The mailcow UI is a PHP application that configures all components through a unified API.
Self-Hosting & Configuration
- Requires a dedicated server or VPS with at least 2GB RAM and a clean public IP
- Run generate_config.sh to set hostname, timezone, and create docker-compose.yml
- Ensure DNS records (MX, A, SPF, DKIM, DMARC, autodiscover) are properly configured
- Manage domains, mailboxes, aliases, and rate limits through the admin web UI
- Automatic Let's Encrypt TLS certificates for all configured domains
Key Features
- Full groupware via SOGo with calendar, contacts, and mobile sync (ActiveSync/CalDAV/CardDAV)
- Two-factor authentication for admin and user logins
- Quarantine management for reviewing and releasing flagged messages
- Per-domain and per-mailbox rate limiting and spam filter tuning
- Built-in backup and restore scripts for complete server migration
Comparison with Similar Tools
- docker-mailserver — Lighter single-container approach with env-based config; no built-in webmail or admin UI
- Mailu — Similar Docker mail stack; different admin UI and component choices
- iRedMail — Installs directly on the OS without Docker; harder to migrate and update
- Zimbra — Enterprise collaboration suite; heavier and partially proprietary
- Microsoft Exchange — Industry standard for enterprise; proprietary and resource-intensive
FAQ
Q: Can I use mailcow for a small personal mail server? A: Yes. mailcow works well for personal use, small teams, or organizations. A VPS with 2-4GB RAM handles dozens of mailboxes.
Q: How do I avoid my emails going to spam? A: Configure SPF, DKIM, and DMARC DNS records correctly, use a clean IP address, start with low volume, and monitor your sender reputation.
Q: Does mailcow support multiple domains? A: Yes. You can host unlimited domains on a single mailcow instance, each with its own mailboxes, aliases, and settings.
Q: How are updates handled? A: Run the included update.sh script, which pulls new container images and applies database migrations automatically.