Some background

I've been a user of hMailServer for my email needs and have been for a number of years. Why? I needed a simplised email server without much effort involved. The issue? hMailServer hasn't exactly been very featuresome and relied on Windows to run, I was feeling much less confident of it security and capabilities in comparison to other offerings.

I eventually looked into what else I could be offered. It had to meet a number of things:

  • Modern
  • Simple to setup
  • Secure
  • Had features such as anti-spam, malware scanning and a web mail client, all integrated or easy to connect.

Mailcow

I've scoured through a number of offerings, checking their capabilities and ease... None were exactly meeting my approval until I stumbled upon the Mailcow project on Github.

The Mailcow project is pretty well thought out, it utilises a number of other open source projects and ties them together via Docker containers. Such projects include:

  • Dovecot
  • ClamAV
  • Memcached
  • Redis
  • MySQL
  • Unbound
  • PHP-FPM
  • Postfix
  • ACME-Client
  • Nginx
  • Rspamd
  • SOGo
  • Fail2ban-like integration

The setup is extremely straightforward requiring the user to install Docker and Docker Compose, clone the Mailcow repository, generate a config file with an included Bash script, setup said config file, pull the Docker image and start the Docker instance.

Honestly, I found this much easier and quicker to setup than manually doing this as I've done PostFix + Dovecot in the past and it can be tricky to those not familiar with such tools and Linux.

Within only 10 minutes I was up and running with Mailcow. The software functioned out of the box and was simple to set up my administrative account on the Mailcow UI followed by adding my mailserver name, DKIM keys, accounts and mail sieve rules.

Bonuses were found such as Yubi OTP, U2F and TOTP for Two Factor authentication methods. Perfect for my Yubikey and more!
I was even able to get my Outlook client to autodiscover the settings as an Exchange server due to the SOGo Groupware emulating Exchange-like functions.

For those curious of SSL, Mailcow also utilises Let's Encrypt SSL certificate generation and renewals via the ACME-Client container, very much appreciated indeed!

Mailcow also supports backup and restore functionality if you wanted to move to other instances in the future or restore an instance gone wrong. Again, very much appreciated.

Update functionality is also included via a Bash script to check for a new update script and run the script to pull down new Docker images. I'd love to see this automated but I'm sure the same could be done via a Cron job or similar.

To finalise...

Mailcow is probably the best "all-in-one" project for an open source mail server I've seen so far and probably one I'll stick with for quite some time. Granted some of you might prefer to still manually setup your mail server and additonal software to integrate. But for those who want a quick, modern well constructed solution I highly suggest giving Mailcow a go!

If I ever have anything further to share about Mailcow in the future I might consider doing an update.