Skip to content

maddy 0.2

Compare
Choose a tag to compare
@foxcpp foxcpp released this 26 Mar 20:36
· 578 commits to master since this release
v0.2.0
b54c705

Stability: This version is believed to be stable enough for use in use
non-critical deployments. Database structure for sql (imapsql) module is
compatible with 0.1. Configuration requires some changes.

Incompatible changes & migration notes

  • alias_file is replaced with generic replace_rcpt module that can use any "table"-like structure for lookups.
    Migration: Replace alias_file /etc/maddy/aliases with replace_rcpt file_table /etc/maddy/aliases.

  • replace_rcpt now relies on tables to handle regexp and static replacements.
    Migration: Replace replace_rcpt postmaster postmaster@$(primary_domain)
    with replace_rcpt static { entry postmaster postmaster@$(primary_domain).
    Replace replace_rcpt "(.+)\+(.+)@(.+)" "$1@$3" with
    replace_rcpt regexp "(.+)\+(.+)@(.+)" "$1@$3".

  • Module sql is renamed to imapsql. Change its name in the
    configuration block definition for local_mailboxes/local_authdb.

  • Configuration parser now requires a new line after } closing the block.

New features

  • Authentication code is refined and generalized. It permits the implementation
    of additional more complex SASL mechanisms such as TLS client certificate
    authentication and OAuth2 support. These are not implemented in 0.2 though.
    What is currently accessible is the ability to use multiple password-based
    authentication providers to allow user login based on any match from any
    credentials store configured.

  • Generic Postfix-like string lookup abstraction is introduced. Alias rewriting
    is updated to use. Additionally, it is possible to use it for password-based
    authentication now. Currently implemented "tables" are: identity (returns
    the lookup key), dummy (empty table), sql_table (returns the result of
    a SQL query), static (hardcoded mapping), regexp (Regular
    Expression-based rewrite of lookup key).

  • sign_dkim module now supports multiple domains in a single configuration,
    avoiding the need for complex dispatching.

  • maddy -v output now includes compile-time defaults for state_dir,
    runtime_dir and configuration path.

  • build.sh script can now customize default values for state_dir and
    runtime_dir.

Bug fixes

  • Fix race in file_table reload test (a91d8c2)
  • Fix misuse of TriesCount in queue (ceda725)
  • Fix queue retry delay calculation (4b3e7ce)

Build artifacts

Artifact SHA-256
maddy executable (Linux, x86_64, musl) b9a5c29c50575f63e3b3de7b8ad0380917ff568560da3860580186c53be89304
maddyctl executable (Linux, x86_64, musl) 7bc9ac4cf62e8317a2ef0fa6ff3a8cde6877a2f972c94c1bcbd8f8f0bd4c148e
Full Zstd tarball (Linux, x86_64, musl) 154617ed5a9314947c67272edc2a884e0df4664e537816ae6da832f30e00d5dc
Sourec code tarball 6f3799d8158d5b9e4625084ab6548fc70c98acdc0234e2acac7e05e553753753

🔒 Attached tarballs are signed using PGP key 3197 BBD9 5137 E682 A597 17B4 34BB 2007 0813 96F4

Build artifacts are produced using the same environment as 0.1.