[0.16.16] - 2026-08-02
If you are upgrading from v0.16.x, replace the binary (or run docker pull). 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
- JMAP Email Delivery Push Notifications (draft-ietf-jmap-emailpush-03)
- MTA: Allow System Sieve scripts to access
orcptduring theDATAstage.
Changed
- S3:
accessKeycan now be read from an environment variable or file.
Fixed
- Meilisearch: Verify index existence using
GETinstead of creating a new task which times out on busy servers. - Branding: Stalwart logo flashes before the per-tenant logo is loaded on the login page.
- Calendar: iMIP and alarm notification messages embed the default logo using bare
LFline endings, producing a single 4247 octet line that strict SMTP relays reject withline too long. - DMARC: Failure reports state
Identity-Alignment: nonewhen a mechanism authenticated successfully but against an identity that is not aligned with theFromdomain. - Redis: Task and queue locks are never released after a worker dies, because failed lock attempts refresh the lock expiry.
- Recovery mode: Download WebUI if missing.
- Logging: The systemd journal tracer omits the parent span's fields.
- MTA:
BDATchunks sent without a validMAIL FROMare answered with552 5.3.4 Message too big for systeminstead of503 5.5.1.- A
maxMessageSizeof0rejects every message with552 5.3.4 Message too big for systeminstead of disabling the size limit.
- Windows: Listeners bound to the unspecified IPv6 address (
[::]), including all defaults, refuse IPv4 connections such as127.0.0.1, sinceIPV6_V6ONLYis enabled by default on Windows.