Skip to content
maddy 0.2.0

**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 `rewrite_rcpt` module that can use any "table"-like structure for lookups.
   **Migration**: Replace `alias_file /etc/maddy/aliases` with `alias file_table /etc/maddy/aliases`.
  If multiple

- `rewrite_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)