❌

Normale weergave

v0.16.0

20 April 2026 om 19:27

[0.16.0] - 2026-04-20

This version includes multiple breaking changes. If you are upgrading from v0.15.x and below, please read the upgrading documentation for more information on how to upgrade from previous versions.

Added

  • Web UI rewritten from the ground up using the JMAP management API, featuring a refreshed design and addressing 76 enhancement requests and bug fixes.
  • CLI rewritten from the ground up to use the JMAP management API.
  • Security enhancements:
    • Password strength enforcement using the zxcvbn algorithm
    • Password expiration, rotation policies and IP address restrictions for user accounts
    • App Passwords with limited access (#1609), labels (#2255), IP address restrictions and expiration dates
    • API keys with limited access, labels, IP address restrictions and expiration dates
    • Auto-ban comments and details about the triggering event (#1321)
    • Auto-ban expiration after a configurable time period (#964)
  • DNS Management:
  • DKIM:
    • Automatic DKIM key generation, rotation and DNS management (#368 #961)
    • Store DKIM keys in the database (#1264)
    • Ignore insecure signatures when verifying DKIM (#1068 #467)
  • ACME/TLS:
    • DNS-PERSIST-01 ACME challenge support (#2837)
    • Renew certificates on demand, view certificate details (#675 #1162 #2566)
    • CAA record support (#468) with accounturi parameter (#1933)
    • TLSA records publishing restricted to 3 1 1 and 2 1 1 (#2193)
  • OIDC and OAuth:
    • JWT token validation without requesting userinfo from the OIDC provider.
    • Audience (aud) claim (#2603) and scope validation support.
    • Groups support (#1448)
    • RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients
  • LDAP:
    • Separate filter for groups (#1841)
    • Improve support for OpenLDAP schemas (#760)
    • Improve and simplify LDAP settings (#2194 #2174)
  • Directory:
    • Masked email addresses for enhanced privacy (Enterprise)
    • Domain aliases (#583)
    • E-mail alias descriptions and option to disable aliases (#506)
    • Account archiving and un-deletion (#2767) (Enterprise)
    • Per-domain directory backends (Enterprise)
  • Account configuration and discovery:
  • Sieve: Allow deactivating scripts without deleting them (#1251).
  • Tracing: Enable events only mode (#2276)
  • Clustering:
    • Automatic cluster node ID generation and management.
    • Unified cluster management (#960)
    • Outbound MTA role (#1692)

Changed

  • Replaced REST API with JMAP API (#2262 #959 #1480)
  • Removed support for Authenticated Received Chain (ARC) sealing (learn more).
  • Directory: Removed smtp, imap and memory directory backends.
  • Use aws-lc for cryptographic operations instead of ring.
  • Use rustls-platform-verifier for TLS certificate verification instead of webpki (#247).

Fixed

  • Directory:
    • Cannot remove built-in "admin" role from user once it was assigned (#1467)
    • Delete associated records (#963)
    • Updated Role permissions not applied (#2038)
    • Recreated account cannot log in until server is restarted (#1469)
    • Subaddressing does not work for groups (#475)
    • New LDAP aliases are rejected (#1318).
    • Validate account and group names (#2209)
  • MTA:
    • RCPT TO stage settings improvements (#2217 #394)
    • Relay to IP addresses (#838)
    • Duplicate delivery inverted check
    • SASL challenge responses include invalid Go ahead text
  • JMAP:
    • Fix inMailboxOtherThan query logic.
    • Fix hasAttachment search field (#2778)
  • IMAP:
    • Increment argument max length to 8000 bytes
    • ACL: Add RIGHTS capability (#2762)
    • ACL: Fix ACL SET permission override.
  • WebDAV:
    • Return 304 NOT_MODIFIED on If-None-Match
    • Use RFC 2616 instead of RFC 1123 for date formatting
    • Fix ACL container/item mismatch in reports.
    • CalDAV: Allow organized properties to be present in PUT requests if they are equal to the existing ones.
    • CalDAV: Enforce cumulative iCalendar instances cap in CalDAV free-busy REPORT handler
  • Configuration: Prefix parsing issues (#2495)
  • OIDC: JWKS Exposes Symmetric Signing Key
  • SQLite: Fix thread pool exhaustion.
  • PostgreSQL: Use clean recycling method on connection pool
  • Meilisearch: Make id sorteable.
  • ACME: Fix wrong origin for subdomain updates (#2360)
  • Spam filter: Skip invalid messages during training.
  • Calendar: Include minutes in localized invite templates (#2828)
  • HTTP: Fix 204 CORS preflight responses

Check binary attestation here

  •  

v0.15.5

Door: mdecimus
17 Februari 2026 om 09:45

[0.15.5] - 2026-02-14

If you are upgrading from v0.14.x and below, this version includes multiple breaking changes. Please read the upgrading documentation for more information on how to upgrade from previous versions.
If you are upgrading from v0.15.x, replace the binary and update the webadmin.

Added

Changed

Fixed

  • IMAP/JMAP: OOM when mail-parser returns cyclical MIME structures (CVE-2026-26312).
  • Tracing: Fix tracing indexing when using separate stores.
  • JMAP: Fix upToId computation in */queryChanges.
  • JMAP: Include createdIds when the property is present.
  • JMAP: Respect query arguments in Email/queryChanges.
  • JMAP: Return the correct container/item change id when there are no changes.

Check binary attestation at here

  •  

v0.15.4

Door: mdecimus
19 Januari 2026 om 13:59

[0.15.4] - 2026-01-19

If you are upgrading from v0.14.x and below, this version includes multiple breaking changes. Please read the upgrading documentation for more information on how to upgrade from previous versions.
If you are upgrading from v0.15.x, replace the binary and update the webadmin.

Added

  • IMAP: Map HEADER SUBJECT/FROM/TO searches to SUBJECT/FROM/TO queries.
  • Sieve: Update spam status on user scripts.

Changed

Fixed

  • Search: Return all document ids when no filters are provided.
  • Search: Filters not applied when a single message is in the account.
  • IMAP: Return ALREADYEXISTS code when creating existing mailboxes.
  • IMAP: Do not return quota resources if no quota is set.
  • JMAP/changes: Update newState with last changeId if an invalid fromChangeId is provided.
  • JMAP/CalendarIdentity: Do not update invalid calendar identities.
  • AI API: Include request error details if available.

Check binary attestation at here

  •  

v0.15.3

Door: mdecimus
29 December 2025 om 16:43

[0.15.3] - 2025-12-29

If you are upgrading from v0.14.x and below, this version includes multiple breaking changes. Please read the upgrading documentation for more information on how to upgrade from previous versions.
If you are upgrading from v0.15.x, replace the binary and update the webadmin.

Added

  • Polish locale support (contributed by @mrxkp) (#2480)

Changed

Fixed

  • Meilisearch: Return correct error messages when failing to create indexes (#2574)
  • PostgreSQL search: Truncate emails to 650kb for full-text search indexing.
  • FoundationDB search: Batch large transactions (#2567).
  • Spam filter: Fix training sample size checks
  • IMAP: Fix UTF7 encoding with Emojis (contributed by @dojiong) (#2564).

Check binary attestation at here

  •  

v0.15.2

Door: mdecimus
22 December 2025 om 14:20

[0.15.2] - 2025-12-22

If you are upgrading from v0.14.x and below, this version includes multiple breaking changes. Please read the upgrading documentation for more information on how to upgrade from previous versions.
If you are upgrading from v0.15.x, replace the binary and update the webadmin.

Added

  • OAuth: Add device authorization endpoint (#2225).

Changed

  • Antispam: Only auto-learn spam from traps or multiple RBL hits.

Fixed

  • mySQL search: Use MEDIUMTEXT field type for email body and attachments (#2544).
  • PostgreSQL search: Truncate large text fields.
  • ElasticSearch: Implement pagination (#2551).
  • Antispam: Fix NO_SPACE_IN_FROM spam tag detection logic (#2372).
  • IMAP: Fix shared folder double nesting (test suite credits to @ochnygosch) (#2358).
  • JMAP: Use latest Received header in JMAP Email/import (credits to @apexskier) (#2374).
  • JMAP: Return unsorted search results when the index is not ready (#2544).
  • LDAP: Lowercase attribute comparison (credits to @pdf) (#2363).
  • CLI: Fix same-host JMAP redirection on non-standard ports (#2271).

Check binary attestation at here

  •  

v0.15.1

Door: mdecimus
17 December 2025 om 18:10

[0.15.1] - 2025-12-17

This version includes multiple breaking changes. Please read the upgrading documentation for more information on how to upgrade from previous versions.

Added

Changed

Fixed

  • PostgreSQL: Sanitize search index values (#2533)
  • Elasticsearch: Ignore resource_already_exists_exception errors when creating indexes (#2535)
  • Migrate 0.13.x data (#2534)

Check binary attestation at here

  •  

v0.15.0

Door: mdecimus
16 December 2025 om 17:40

[0.15.0] - 2025-12-16

This version includes multiple breaking changes. Please read the upgrading documentation for more information on how to upgrade from previous versions.

Added

  • Linear spam classifier using FTRL-Proximal and feature/cuckoo hashing.
  • Meilisearch store backend implementation (#1482).
  • PostgreSQL and mySQL native full-text search support.
  • Multiple performance improvements and database access optimizations.
  • Encryption-at-rest: Spam training privacy setting.
  • Enterprise: Undelete e-mail feature now includes From/Subject/Received information.
  • IMAP: Implemented new keywords and mailbox attributes described in draft-ietf-mailmaint-messageflag-mailboxattribute-13

Changed

  • IMAP: Always return special use flags in responses.

Fixed

  • JMAP: FileNode/set fails to delete files (#2485).
  • JMAP: Return error when using blobId in JSContact and JSCalendar (#2431).
  • Directory: Deletion of list or domain issues (#2415).
  • MTA: Headers and body stripped from mail delivery subsystem failure notifications (#2344).
  • MTA: Hooks only run if sieve script, milter or rewrite is configured (#2317).
  • Autodiscover: Endpoint should be case insensitive (#2440).
  • Housekeeper: Panic during DST transition (#2366).
  • Import/Export: Fix import/export utility (#1882).
  • Enterprise: Remove tenant admin permissions when license is invalid.

Check binary attestation at here

  •  

v0.14.1

Door: mdecimus
28 Oktober 2025 om 11:49

[0.14.1] - 2025-10-28

If you are upgrading from v0.13.4 and below, this version includes breaking changes to the internal directory, calendar and contacts. Please read the upgrading documentation for more information on how to upgrade from previous versions.

Added

  • Autoconfig for CalDAV, CardDAV and WebDAV (#1937)

Changed

  • HTTP: Remove HTTP STS preload directive.

Fixed

  • Directory: Keep OTP Auth and AppPasswords unless the remote directory provides new ones (#2319)
  • JMAP: Fix ContactCard/set and CalendarEvent/set destroy methods (#2308).

Check binary attestation at here

  •  

v0.14.0

Door: mdecimus
28 Oktober 2025 om 09:57

[0.14.0] - 2025-10-22

If you are upgrading from v0.13.4 and below, this version includes breaking changes to the internal directory, calendar and contacts. Please read the upgrading documentation for more information on how to upgrade from previous versions.

Added

Changed

  • Breaking Database Changes (migrated automatically on first start):
    • Internal directory schema changed.
    • Calendar and Contacts storage schema changed.
    • Sieve scripts storage schema changed.
    • Push Subscriptions storage schema changed.
  • Replaced sieve.untrusted.limits.max-scripts and jmap.push.max-total with object-quota.* settings.
  • Cluster node roles now allow sharding.

Fixed

  • Push Subscription: Clean-up of expired subscriptions and cluster notification of changes (#1248)
  • CalDAV: Per-user CalDAV properties (#2058)

Check binary attestation at here

  •  

v0.13.4

Door: mdecimus
1 Oktober 2025 om 07:59

[0.13.4] - 2025-09-30

If you are upgrading from v0.11.x or v0.12.x, this version includes breaking changes to the message queue and MTA configuration. Please read the UPGRADING.md file for more information on how to upgrade from previous versions.

Added

Changed

  • JMAP: Protocol layer rewrite for zero-copy deserialization and architectural improvements.

Fixed

  • IMAP: Unbounded memory allocation in request parser (CVE-2025-61600 ).
  • IMAP: Wrong permission checked for GETACL.
  • JMAP: References to previous method fail when there are no results (#1507).
  • JMAP: Enforce quota checks on Blob/copy.
  • JMAP: Mailbox/get fails without accountId argument (#1936).
  • JMAP: Do not return invalidProperties when email update doesn't contain changes (#1139)
  • iTIP: Include date properties in REPLY (#2102).
  • OIDC: Do not set username field if it is the same as the email field.
  • Telemetry: Fix calculateMetrics housekeeper task (#2155).
  • Directory: Always use rsplit to extract the domain part from email addresses.

Check binary attestation at here

  •  

v0.13.3

Door: mdecimus
10 September 2025 om 11:01

[0.13.3] - 2025-09-10

If you are upgrading from v0.11.x or v0.12.x, this version includes breaking changes to the message queue and MTA configuration. Please read the UPGRADING.md file for more information on how to upgrade from previous versions.

Added

Changed

  • WebDAV: Assisted discovery v2

Fixed

  • iTIP: Do not send a REPLY when deleting an event that was not accepted.
  • iTIP: Include event details in REPLY messages (#2102).
  • iTIP: Add organizer to iMIP replies if missing to deal with MS Exchange 2010 bug.
  • OIDC: Do not overwrite locally defined aliases (#2065).
  • HTTP: Scan ban should only be triggered by HTTP parse errors.
  • HTTP: Skip scanner fail2ban checks when the proxy client IP can't be parsed (#2121).
  • JMAP: Do not allow roles to be removed from system mailboxes (#1977).
  • JMAP WS: Fix panic when using invalid server url.
  • SMTP: Do no send EHLO twice when STARTTLS is unavailable (#2050).
  • IMAP: Allow ENABLE UTF8 in IMAPrev1.
  • IMAP: Include administer permission in ACL responses.
  • IMAP: Add owner rights to ACL get responses.
  • IMAP: Do not auto-train Bayes when moving messages from Junk to Trash.
  • IMAP/ManageSieve: Increase maximum quoted argument size (#2039).
  • CalDAV: Limit recurrence expansions in calendar reports (CVE-2025-59045).
  • WebDAV: Do not fix percent encoding on WebDAV FS (#2036).

Check binary attestation at here

  •  

v0.13.2

Door: mdecimus
28 Juli 2025 om 14:35

[0.13.2] - 2025-07-28

If you are upgrading from v0.11.x or v0.12.x, this version includes breaking changes to the message queue and MTA configuration. Please read the UPGRADING.md file for more information on how to upgrade from previous versions.

Added

  • ACME: DeSEC cloud DNS provider support (contributed by @Tyr3al).
  • ACME: OVH cloud DNS provider support (contributed by @srachner).
  • CalDAV Scheduling: Catalan language support (contributed by @jolupa) (#1873).
  • MTA: Allow to send e-mails as group, while member of that group (#485).
  • OIDC: Allow local access tokens to be used with third-party OIDC backends (#1311 stalwartlabs/webadmin#52).

Changed

  • IMAP: Return OK when moving/copying non-existent messages (#670).
  • IMAP: Copy flags when copying/moving messages between accounts.

Fixed

  • MTA: Do not convert e-mail local parts to lowercase (#1916).
  • Sieve: fileinto should override spam filter (#1917).
  • JMAP: Incorrect accountId used in email set and import methods (#1777).
  • WebDAV: Always return MULTISTATUS when calendar-query yields no results.
  • LDAP: Only set account name if not returned in LDAP query (#1471).
  • Enterprise: Invalidate logo cache when changes are made (#1856).
  • Enterprise: Fix tenant quota update API.

Check binary attestation at here

  •  
❌