mailcow mailserver suite
News and notes
11 containers and 4 volumes combine to a Docker conform mailcow installation.
mailcow: dockerized will be a rolling release in the master branch @ GitHub. There will be a dev branch soon, which should not be used.
Learn more about mailcow: dockerized below, please visit our board @ forum.mailcow.email or visit us on IRC @ Freenode in #mailcowLink to GitHub
Link to Docs
A fresh installation is recommended!
- WebUI per mailbox: Enforce in- and outbound TLS
- ! Works best with Postfix >=3.0 (*uses smtp_dsn_filter to turn temp. TLS errors to perm. errors to notify client instantly)
- WebUI per mailbox: Set black- and whitelist records for spam filter
- WebUI: Drag and drop Postfix restrictions
- Switched WebUI to PDO database interface
- Added some options to /var/www/mail/inc/vars.inc.php (please use
vars.local.inc.phpto overwrite settings)
- Multi-language Web UI (English, Portuguese and German)
- Fixed errors in Web UI
- Removed backup from Web UI and added "mailcow-backup-mail" script
- (Hopefully) RFC compliant email addresses
- Z-Push removed - choose between SOGo (ActiveSync + DAV) and Roundcube
- Better Sender ACL (find it at "edit mailbox")
- Fail2ban was removed and should be setup according to your own setup
- letsencrypt.sh/dehydrated was added to provide a signed certificate (optional)
Thanks to Brad we now have a Discourse instance online for you to find help installing/configuring mailcow!
We can finally stop using Github as our forum and keep using it for real issues and bugs. :-)Visit forum
Für deutschsprachige Kunden bietet Servercow nun eine gehostete mailcow-Instanz an.Mehr lesen
What is mailcow?
mailcow is a mail server suite based on Dovecot, Postfix and other open source software, that provides a modern Web UI for administration.
- Multi-SAN self-signed SSL certificate for all installed and supporting services
- Let’s Encrypt optional
- Webserver installation
- Apache or Nginx (+PHP5-FPM)
- SQL database backend, remote database support
- MySQL or MariaDB
- mailcow web UI
- Add domains, mailboxes, aliases, set limits, monitor mail statistics, change mail server settings, create/delete DKIM records, share and create calendars/address books and more…
- Postscreen activated and configured
- STARTTLS and SMTPS support
- The default restrictions used are a good compromise between blocking spam and avoiding false-positives
- Incoming and outgoing spam and virus protection with FuGlu as pre-queue content filter; Heinlein Support spamassassin rules included; Advanced ClamAV malware filters
- Sieve/ManageSieve (default filter: move spam to “Junk” folder, move tagged mail to folder “tag”)
- Public folder support via control center
- per-user ACL
- Shared Namespace (per-user seen-flag)
- ManageSieve support (w/ vacation)
- Attachment reminder (multiple locales)
- Zip-download marked messages
Everybody loves screenshots!
What do I need?
mailcow runs best on Debian 8.
Some Debian derivates like Ubuntu should work, too. Though we recommend to install mailcow on a clean Debian 8 installation.
How to install?
1. Get the latest stable release from GitHub:
cd ; wget -O - https://github.com/andryyy/mailcow/archive/v0.14.tar.gz | tar xfz - cd mailcow*
2. Open and edit the configuration file:
Empty configuration values are invalid.
Most configuration parameters do not need to be changed, please read the hints inside the file carefully.
|sys_hostname||Hostname without domain|
|sys_domain||Domain name. "$sys_hostname.$sys_domain" equals to FQDN.|
|sys_timezone||The timezone must be definied in a valid format (Europe/Berlin, America/New_York etc.)|
|conf_httpd||Select wether to use Nginx ("nginx") or Apache2 ("apache2"). Nginx is default.|
|my_dbhost||ADVANCED: Leave as-is ("localhost") for a local database installation. Anything but "localhost" or "127.0.0.1" is recognized as a remote installation.|
|my_mailcowdb, my_mailcowuser, my_mailcowpass||SQL database name, username and password for use with Postfix. You can use the default values.|
|my_rcdb, my_rcuser, my_rcpass||SQL database name, username and password for Roundcube. You can use the default values.|
|my_rootpw||SQL root password is generated automatically by default. You can define a complex password here if you want to. Set to your current root password to use an existing SQL instance.|
|my_usemariadb||Use MariaDB instead of MySQL. Only valid for local databases. Installer stops when MariaDB is detected, but MySQL selected - and vice versa.|
|mailcow_admin_user, mailcow_admin_pass||mailcow administrator. Password policy: minimum length 8 chars, must contain uppercase and lowercase letters and at least 2 digits. You can use the default values.|
|inst_debug||Sets Bash mode -x|
|inst_unattended||An unattended installation is possible, but not recommended.|
3. Run the installer:
How to upgrade?
Get the latest package from GitHub, don't edit any configuration files and just run:
mailcow auto-detects all values - except for your SQL root password - from your current installation.
If you don't want to confirm each step of the upgrade, use
-U instead (mailcow >=0.14):
When autodetection of your hostname and/or domain name fails, use the
-H parameter to overwrite the hostname and/or
-D to overwrite the domain name (mailcow >=0.14):
# FQDN: mx.example.org ./install -u -H mx -D example.org
How to uninstall?
Change to your extracted mailcow installation package.
- Just remove the basic components, but don't touch your database, mails and other important files:
- Complete wipe, this is dangerous:
bash misc/purge.sh --all
IRC: Freenode, #mailcow
Docs: mailcow: dockerized
mailcow: dockerized is based on Postfix, Dovecot, Nginx, PHP, MariaDB, Rspamd, Rmilter and more!
mailcow is the standard installer based on open-source software:
Feel free to donate
KVM virtual machines for
mailcow @ servercow.de (DE)