All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.5.0 - 2026-03-16
- Add autoreply feature with scheduling support #569
- Add an action to split a thread from a message #561
- Add starred/important thread feature scoped per mailbox #581
- Add unread and starred filters in thread panel #581
- Add better filtering and granularity for usage metrics
- Expose
oidc_autojoinandidentity_syncflags in provisioning API
-
Customize thread panel bulk actions according to selection state
-
Rename usage API params to be more generic #589
-
Remove per-message starred in favor of thread-level starred #588
⚠️ This migration requires a search reindex to be run after the upgrade. -
Use
url_permalinkfrom Drive and limit requests to Drive resource server #587
- Make DNS checking more resilient
- Remove
mailbox.idfrom metrics
- Prevent XSS and URL redirect in shallow navigation
0.4.0 - 2026-03-05
-
Store thread read state per thread access #575
⚠️ This migration requires a search reindex to be run after the upgrade. -
Store and display the user who sent a message #574
-
Display selected threads count in right panel #576
-
Add skip navigation link for keyboard users #573
-
Add DeployCenter backend for syncing maildomain admins #572
-
Add management command to print all users of the instance
- Bump keycloak to 26.5.4 #571
- Add migrations-check Makefile command
- Preserve scroll position across renders #578
- Convert newlines to
<br>in styled text #577 - Scope labels and user_role to the requested mailbox
0.3.0 - 2026-02-24
- Add configurable help center button in header #537
- Add outbound message recipients throttling #506
- Add webhook and logging for selfchecks, replacing pushgateway #550
- Add mailbox export in mbox format with labels #553
- Add PST import support and streaming for mbox #544
- Add denylist for personal mailbox prefixes #540
- Add multi-column layout block for signature editor #551
- Add celery task events for worker monitoring #549
- Add image block in template, signature and message composers
- Add storage usage metrics API endpoint #538
- Add conditional outbox folder
- Add stronger DNS checks with configurable records #522
- Add print button in messages context menu #518
- Add autofocus option to message, template and signature composers
- Add arm64 platform support for Docker image builds #554
- ❗ BREAKING: Update the Drive third party api logic to comply with the new Drive logic. Messages now interops with Drive >= 0.13.0
- Replace queue-based save/send orchestration with async promise ref
- Use display_name for labels and auto-unfold active parents #547
- Optimize MessageTemplate serialization and body handling #545
- Defer HTML/text body export to send/save time
- Add composer tools (text color, side menu and drag block handle)
- Improve outbox wording #539
- Replace nginx with Caddy for frontend reverse proxy and Scalingo deployment #556
- Replace MinIO with RustFS for object storage in development #556
- Migrate Python packaging from Poetry to uv #556
- Standardize and rename Makefile targets #556
- Upgrade Python to 3.14 #556
- Remove Django i18n and backend translation catalogs #556
- Delete orphan attachments when removed from draft #532
- Fix cursor position when clicking in combobox input #534
- Close left panel when clicking active folder on mobile
- Close thread after send only if needed
- Prevent IDOR on ThreadAccess thread and mailbox fields #557
- Add defense in-depth for XSS vulnerabilities #520
0.2.0 - 2026-02-03
- Display calendar invites in messages #481
- Add integrations view in mailbox settings #488
- Allow to retry send Message in Django Admin and filter Message by delivery status #499
- When forwarding a message, the attachments are added to the draft as new attachments #485
- Add InboundMessage admin view #505
- Add
worker.pycommand and improve task routing on queues #504
- Add loading state to the refresh button #511
- Refactor permissions code for viewsets #503
- Strip NUL bytes from email content #524
- Raise new "DUPLICATE" error when there are 2 SPF records #521
- Fix memory leak with large mbox file import #516
- Fix env var still overriding the Celery default
- Add default "invitation.ics" name for invite downloads
- Make celery app name explicit to fix potential $APP override
- Fix a few edge cases in email parser #507
- Fix duplicate recipient creation errors #496
- Fix SSL error and improve authentication failure #495
0.1.1 - 2026-01-22
- Now
DJANGO_ADMIN_URLmust not end with/.
0.1.0 - 2026-01-20
- Allow to save an attachment into Drive workspace #408
- Add a SPAM folder in mailbox panel
- Allow to search for spam messages
- Add
is_trashedflag to thread model - Add to select multiple threads in thread panel
- Add image proxy endpoint to display external images in messages
- Add
to_exactmodifier to search query - Allow to toggle spam status of a thread
- Configure Drive App Name through environment variable (DRIVE_APP_NAME)
- Inherit OIDC Authentication backend from django-lasuite #408
- Exclude
is_trashedandis_spamthreads from search results by default tosearch modifier now looks for messages where recipient fields (to, cc, bcc) contain the given email address.