091eda1ed2ec0341303d1f287e92b3b3ebe7c048
The LDAP support was not in a good shape when it was merged. This is a breaking change and course correction to apply best practices going forward. This fixes various issues experienced with the Dovecot LDAP home directory. The gravest issue is that the `homeDirectory` attribute from the `posixAccount` schema would overwrite the Dovecot home directory and cause permission errors. This was possible because we defined the home variable in `default_fields` that is inherently mutable and just a preset if no other value gets transmitted from LDAP. This did not surface in tests, because our LDAP schema was too minimal compared to a common production dataset. The most annoying issue and the actual breaking change is that we now default to UUID based home directories. Every entry in an IDM that supports LDAP comes with a unique identifier that does not change upon account name changes. We want those to enable simple account name migrations that don't require any manual data migration. To migrate existing dovecot home directories a migration script is included, which will be backported to the 25.11 release, so the migration can already be started from the previous release version.
Release branches
For each NixOS release, we publish a branch. You then have to use the SNM branch corresponding to your NixOS version.
- For NixOS 25.11
- For NixOS 25.05
- For NixOS unstable
- Use the SNM branch
master - Documentation
- Use the SNM branch
Features
- Continuous Integration Testing
- Multiple Domains
- Postfix
- SMTP on port 25
- Submission TLS on port 465
- Submission StartTLS on port 587
- LMTP with Dovecot
- DANE and MTA-STS validation
- SMTP TLS Reports (RFC 8460)
- Dovecot
- Maildir folders
- IMAP with TLS on port 993
- POP3 with TLS on port 995
- IMAP with StartTLS on port 143
- POP3 with StartTLS on port 110
- Certificates
- ACME
- Custom certificates
- Spam Filtering
- Via Rspamd
- Virus Scanning
- Via ClamAV
- DKIM Signing
- Via Rspamd
- Automatic key generation
- Multiple selectors per Domain
- User Management
- Declarative user management
- Declarative password management
- LDAP users
- Sieve
- Allow user defined sieve scripts
- Moving mails from/to junk trains the Bayes filter
- ManageSieve support
- User Aliases
- Regular aliases
- Catch all aliases
- Improve the Forwarding Experience
In the future
- Automatic client configuration
- Improve the Forwarding Experience
- User management
- Allow local and LDAP user to coexist
- OpenID Connect
- Depends on relevant clients adding support, e.g. Thunderbird
Get in touch
- Matrix: #nixos-mailserver:nixos.org
- IRC:
#nixos-mailserveron Libera Chat
How to Set Up a 10/10 Mail Server Guide
Check out the Setup Guide in the project's documentation.
For a complete list of options, see in readthedocs.
Development
See the How to Develop SNM documentation page.
Contributors
See the contributor tab
Alternative Implementations
Credits
- send mail graphic by tnp_dreamingmao from TheNounProject is licensed under CC BY 3.0
- Logo made with Logomakr.com
Description
Languages
Nix
92.8%
Python
6.5%
Sieve
0.4%
Shell
0.3%
