Hello mailcow folks 🐄,

"After update is before update", so always update your cows please, no matter if there is a summary on mailcow.email. 🙂

Before we start I want to remind you of an important change that’s about to happen tomorrow:

mailcow, including me, will be part of "The Infrastructure Company GmbH". No, mailcow will not be discontinued. No, I will not stop to work on mailcow.
You will probably not notice the change at all. Hopefully we will be able to finally implement more features soon as there will be more time to work on mailcow.

We still rely heavily on your support (support contacts, SAL etc.) to continue mailcow as it is. As long as we don’t have a commercial plan or "paid version" of mailcow, that’s the only way for us to finance the work on mailcow.

What’s new?

The biggest change in the past few weeks was the addition of ejabberd. For more information please see our docs.

As of today we let ejabberd manage the necessary certificates by itself to have them completely isolated from mailcow and the mail service.

Besides that many bugs were fixed and existing features were cleaned up.

What’s next?

Disclaimers/signatures with variables to use in a pre-defined template per domain and mailbox. 🙂


Thank you guys for your amazing support and contributions! Especially language updates/fixes and additions are very welcome!

[ACME] Skip inactive domains
[API docs] Add sogo_visible property to alias endpoints (#3956)
[Alpine] Update Alpine base images to v3.13
[Api docs] Added day ratelimit option to /add/domain endpoint
[Backup Helper] Possible workaround for #3913
[ClamAV] Update to 0.103.1
[Compose] Add XMPP
[Compose] Update ClamAV image
[Config] Add ADDITIONAL_SERVER_NAMES as optional config to define additional server_name parameters for mailcow UI
[Config] Add Wikipedia link for TZ values (#3891)
[Config] Add XMPP ports
[Config] Fix binding problems with IPv6 in newer Docker versions
[Config] Remove example
[Docker 20.10 Fix] Fix for moby/moby#39837, fixes #3893
[Dovecot] Add Russian and Ukrainian folders (#3967)
[Dovecot] Add sieve rule to move DeltaChat (https://delta.chat) messages to folder DeltaChat
[Dovecot] Check if quarantine_notify.py holds a lock
[Dovecot] Remove Schaal, remove non-numeric TXT output from dig request
[Dovecot] Replace hostname for quarantine notifications with mailcow hostname (broke after Docker 20.10 fix)
[Dovecot] Set –addheader by default, fixes #4025
[Ejabberd] Add missing ip in yml
[Ejabberd] Add new Dockerfile
[Ejabberd] Do not store group chats in archive
[Ejabberd] Do not store messages by default; Delete uploads after 30 days; Use JID in upload file path; Use more secure file permissions; Set max offline messages to 1000;
[Ejabberd] Fix bootstrapping, ejabberd could not be enabled
[Ejabberd] More fixes for Ejabberd integration (WIP)
[Ejabberd] Require s2s TLS, enforce protocols and ciphers, move admin UI (WIP)
[Ejabberd] Various fixes, sorry (still WIP)
[Git] Ignore SSL examples
[Git] Ignore autogen ejabberd
[Git] Ignore custom SOGo logo
[Git] Ignore custom-themes.js in SOGo
[Git] Sort gitignore
[Helper] Add ejabberd to build overrides
[Helper] Use NC 20
[MariaDB] Update to 10.5
[Netfilter] Further improvements to catch invalid input
[Netfilter] Restart on invalid data via pubsub
[Nginx] Be more explicit with server names
[Olefy] Update container to alpine 3:13 to fix build (#3988)
[PHP-FPM] Add sleep to loop
[PHP-FPM] Fix fastcgi timeouts
[PHP-FPM] Increase PHP memory limit for "cli" to 512M (#4010)
[PHP-FPM] Update image
[Postfix] Add parent_domain_matches_subdomains
[Postfix] Add postscreen whitelist syntax and examples (#3931)
[Postfix] Do not create a TLS SNI map when SKIP_LETS_ENCRYPT=y
[Postfix] Fix HELO name
[Postfix] Unset Postfix smtpd_tls_session_cache_database, reduce disk writes (#3981)
[Postfix] Use tmpfs for watchdog’s /tmp, reduce disk writes (#3923)
[Rspamd] Add FUZZY_SPAM_MISMATCH (#3958)
[Rspamd] Add bulk header
[Rspamd] Block spoofing for free mail domains (#3907)
[Rspamd] Edit RBL
[Rspamd] Fix vanished Rspamd history after restart
[Rspamd] Increase spam symbol weight
[Rspamd] Not trigger FREEMAIL_POLICY for mailig lists (#3918)
[Rspamd] Remove ham symbols if a fuzzy denied hash matched
[Rspamd] Score for freemail from to undisclosed recipients
[Rspamd] Set bounce_to ratelimit to 7 / 1m to hopefully reduce backscatter spam
[Rspamd] Sort & add infos for bad ASN map (#3934)
[SOGo] Add custom favicon (#3957)
[SOGo] Fix comments in custom theme
[SOGo] Remove custom theme, disable debug mode, keep example custom-themes
[Update, Config] Add subject for watchdog emails (#4027)
[Update] Add XMPP ports
[Update] Better GLIBC check
[Update] Try to determine GLIBC version
[Watchdog] Longer sleep for open relay check
[Watchdog] Return score with Rspamd check
[Watchdog] Revert to Alpine 3.11, needs fixes
[Watchdog] Temp. disable query check
[Web] Added missing french parts (XMPP and Nginx service)
[Web] Changed type of items parameter to list
[Web] Accept prehashes password on both edit and add mailbox
[Web] Accept raw SSHA hashes as passwords
[Web] Add SSHA
[Web] Add Trustkey CA for WebAuthn
[Web] Add information about extended DNS config
[Web] Add nevondo.com ip check source, thank you!
[Web] Added missing french parts, based on the english file
[Web] Allow to specify transport test rcpt
[Web] Danish lang. 🇩🇰 (#3971)
[Web] Do not cache content of Rspamd global filter maps
[Web] Do not create 2M session file when saving large Rspamd global filter maps (thanks @Drago)
[Web] Do not print invalid date
[Web] Feature: Expand alias over alias domains
[Web] Feature: Expand alias over alias domains
[Web] Fix SSO for SOGo when authen with FIDO2, thanks to Drago!
[Web] Fix U2F file
[Web] Fix XMPP site
[Web] Fix administrator badge for xmpp users, fixes #3977
[Web] Fix attachment download, thanks to Drago
[Web] Fix duplicate file extension on shortened filenames
[Web] Fix for listing mailboxes and aliases from multiple domains (#3996)
[Web] Fix more ACL-disabled buttons
[Web] Fix permission of ejabberd directory
[Web] Fix quota-left calculations when editing a mailbox (respect max domain quota)
[Web] Fix textarea number width > 999
[Web] Implement XMPP
[Web] Implement all supported dovecot password schemas (#3974)
[Web] Keep state of quarantine table in session
[Web] Missing capital letters on some buttons (#4000)
[Web] Move white/blacklist form above the table (#3975)
[Web] Move xmpp_active checkbox to the bottom
[Web] Remove 36f296d9d63112db4218cef39f1eebc8a61c785d, fixes #3926
[Web] Remove XMPP site when disabling XMPP
[Web] Remove breakpoints for small screens for "Recipient" and "Action" columns (#3938)
[Web] Require Docker functions for xmpp config reload
[Web] Show JID example when editing a domain
[Web] Show XMPP status for user
[Web] Show XMPP status in /debug
[Web] Show quarantine settings in /quarantine
[Web] Temp remove ip6.korves.net
[Web] Update libs
[Web] Update russian translation (lang.ru.json)
[Web] Uppercase "rename" in en and de
[Web] Use api/v1/get/mailbox/reduced for faster loading of mailbox table
[Web] Various small fixes and enhancements
[mailcow] Fix C22 -> C2S
[mailcow] Move ejabberd site to last available site