All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
This version introduces breaking changes in the configuration file. Please read the UPGRADING.md file for more information on how to upgrade from previous versions.
- Distributed and fault-tolerant SMTP message queues.
- Distributed rate-limiting and fail2ban.
- Expressions in configuration files.
- Do not include
STATUS
in IMAPNOOP
responses (#234). - Allow multiple SMTP
HELO
commands.
This version introduces some breaking changes in the configuration file. Please read the UPGRADING.md file for more information.
- Spam databases can now be stored in any of the supported data stores or
Redis
. It is no longer necessary to have an SQL server to use the spam filter. - LDAP bind authentication, to support some LDAP servers such as
lldap
which do not expose the userPassword attribute.
- Spamhaus DNSBL return codes.
- CLI tool reports authentication errors rather than a parsing error.
This version introduces some breaking changes in the configuration file. Please read the UPGRADING.md file for more information.
- Built-in Spam and Phishing filter.
- Scheduled queries on some directory types.
- In-memory maps and lists containing glob or regex patterns.
- Remote retrieval of in-memory list/maps with fallback mechanisms.
- Macros and support for including files from TOML config files.
config.toml
is now split in multiple TOML files for better organization.- BREAKING: Configuration key prefix
jmap.sieve
(JMAP Sieve Interpreter) has been renamed tosieve.untrusted
. - BREAKING: Configuration key prefix
sieve
(SMTP Sieve Interpreter) has been renamed tosieve.trusted
.
- Journal logging support
- Option to allow unencrypted SMTP AUTH (#72)
- Support for
rcpt-domain
key inrcpt.relay
SMTP rule evaluation.
- SMTP strategy
Ipv6thenIpv4
returns only IPv6 addresses (#70) - Milter
DATA
command is sent after headers which causes ClamAV to hang. - Sieve
redirect
of unmodified messages does not work.
- Arithmetic and logical expression evaluation in Sieve scripts.
- Support for storing query results in Sieve variables.
- Results of SPF, DKIM, ARC, DMARC and IPREV checks available as environment variables in Sieve scripts.
- Configurable protocol flags for Milter filters.
- Fall-back to plain text when
STARTTLS
fails andstarttls
is set tooptional
.
- Do not panic when
hash = 0
in reports. (#60)
- TCP listener option
nodelay
.
- Allow disabling
STARTTLS
.
- Missing envelope keys in rewrite rules (#25)
- Remove CRLF from Milter headers
- Support for referencing context variables from dynamic values.
- Support for PKCS8v1 ED25519 keys (#20).
- Sender and recipient address rewriting using regular expressions and sieve scripts.
- Subaddressing and catch-all addresses using regular expressions (#10).
- Dynamic variables in SMTP rules.
- Added CLI to Docker container (#19).
- Workaround for a bug in
sqlx
that caused SQL time-outs (#15). - Support for ED25519 certificates in PEM files (#20).
- Better handling of concurrent IMAP UID map modifications (#17).
- LDAP domain lookups from SMTP rules.
- Milter filter support.
- Match IP address type using /0 mask (#16).
- Support for OpenLDAP password hashing schemes between curly brackets (#8).
- Add CA certificates to Docker runtime (#5).
- LDAP authentication.
- subaddressing and catch-all addresses.
- Removed concept of
databases
,lists
,remotes
lists and replaced it withdirectories
.
- Error when using PKCS8 DKIM private keys.
- LDAP authentication.
- subaddressing and catch-all addresses.
- Bump to latest mail-auth.
- Error
sender-domain
key not available for evaluation.
- Only the first TLS certificate is used rather than the full chain (#3)
- Update name for
reject-non-fqdn
setting (#6).
Initial release.