A self-hosted mail server packaged as a set of Docker images, covering SMTP, IMAP, POP3 and webmail.
maathimself/mailflow
A self-hosted webmail client that merges multiple IMAP/SMTP email accounts into one unified inbox.
Open-source alternative to:Microsoft Outlook
Gmail
- Stars
- 652
- Forks
- 77
- Open issues
- 58
- Last commit
- 20 hours ago
What is it?
MailFlow is a self-hosted webmail client for people who use several email accounts and want to read and send them from one interface. Accounts from any IMAP/SMTP provider, including Gmail, iCloud, and Microsoft 365 via OAuth2, are merged into a single date-sorted inbox, with per-account SMTP routing for replies and forwards.
Beyond basic mail handling, it adds automatic inbox categorization, one-click unsubscribe for newsletters, conversation threading, full-text search across accounts, snooze, inbox rules, a block list, and an optional GTD workflow that stores labels as real IMAP folders. An optional AI assistant can summarize threads and draft replies using an OpenAI-compatible API.
The project is deployed with Docker Compose, or run natively with Node.js, PostgreSQL, Redis, and nginx. It includes multi-user administration with invite-only registration, TOTP two-factor authentication, OIDC single sign-on, a CardDAV address book, and Todoist integration. Electron and Capacitor wrappers are included for building desktop and Android apps from source.
Key features
- 01Merges multiple IMAP/SMTP accounts into one date-sorted inbox
- 02Automatic inbox tabs and one-click unsubscribe for newsletters
- 03Inbox rules, block list, snooze, and spam reporting
- 04Rich text compose with attachments and per-account SMTP routing
- 05Two-factor authentication, OIDC single sign-on, and invite-only user management
- 06Optional GTD labels backed by IMAP folders
Use cases
- Reading Gmail, iCloud, and work Outlook mail in one place
- Running a private webmail server for a family or small team
- Replacing multiple mail apps with one self-hosted web interface
- Managing email with a GTD-style workflow across accounts
Quick start
- 1
Download the compose file from the README
curl -o docker-compose.yml https://raw.githubusercontent.com/maathimself/mailflow/main/docker-compose.ghcr.yml - 2
Download the default environment config
curl -o .env https://raw.githubusercontent.com/maathimself/mailflow/main/.env.example - 3
Edit .env to set APP_URL, SESSION_SECRET, DB_PASSWORD and ENCRYPTION_KEY
- 4
Start MailFlow with Docker Compose
docker compose up -d
Things to know
- Requires a server with Docker and Docker Compose to self-host.
- Licensed under AGPL-3.0, so network-served modifications must be published under the same license.
- Some features, such as the Business License and commercial licensing, are paid.
In collections
Topics
FAQ
- What is mailflow?
- A self-hosted webmail client that merges multiple IMAP/SMTP email accounts into one unified inbox. MailFlow is a self-hosted webmail client for people who use several email accounts and want to read and send them from one interface. Accounts from any IMAP/SMTP provider, including Gmail, iCloud, and Microsoft 365 via OAuth2, are merged into a single date-sorted inbox, with per-account SMTP routing for replies and forwards.
- Is mailflow free to use? What license does it have?
- mailflow is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
- Is mailflow still maintained?
- Actively maintained. The last commit to mailflow was on Nov 6, 2026.
- What can I use mailflow for?
- Reading Gmail, iCloud, and work Outlook mail in one place Running a private webmail server for a family or small team Replacing multiple mail apps with one self-hosted web interface Managing email with a GTD-style workflow across accounts
- How do I install mailflow?
- Download the compose file from the README: curl -o docker-compose.yml https://raw.githubusercontent.com/maathimself/mailflow/main/docker-compose.ghcr.yml Download the default environment config: curl -o .env https://raw.githubusercontent.com/maathimself/mailflow/main/.env.example Edit .env to set APP_URL, SESSION_SECRET, DB_PASSWORD and ENCRYPTION_KEY Start MailFlow with Docker Compose: docker compose up -d
- Where can I get mailflow?
- The source code and installation instructions are on GitHub: https://github.com/maathimself/mailflow
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A browser-based multilingual IMAP webmail client with an application-like interface, written in PHP and extendable through plugins and skins.
A lightweight, self-hostable webmail client that combines multiple email accounts into one view over IMAP, SMTP, JMAP and EWS.
A simple, lightweight, web-based email client written in PHP that needs no database.
A mail client app for Nextcloud that connects to any IMAP account from within your Nextcloud instance.
Self-hosted mail server for your own domain, with SMTP/IMAP/POP3, CardDAV/CalDAV, a React webmail and admin console, deployed via Docker Compose.