29 Commits
Author SHA1 Message Date
BastienandGitHub bfe9492509 ⬆️(chore) bump keycloak to 26.7.1 (#776) 2026-08-08 10:00:53 +02:00
jbpenrath 3214cfb57c 🔖(minor) release version 0.9.0
Update all version files and changelog for minor release.
2026-07-22 18:03:46 +02:00
Corentin GiraudandGitHub 6e077eab89 🐛(mta-out) de-indent relay block in main.cf.j2 (#733)
The relay section of main.cf.j2 is indented by one space. Jinja keeps that
leading whitespace in the rendered /etc/postfix/main.cf, and Postfix treats any
line starting with whitespace as a continuation of the previous parameter. So
the smtp_sasl_* directives get folded into the relayhost value instead of being
set as parameters, leaving smtp_sasl_auth_enable at its default (no) and the
relayhost value malformed.

Outbound mail through an authenticated relay then fails: the relay rejects it
with "502 5.7.0 Please authenticate first", and Postfix logs "fatal: valid
hostname or network address required in server description: =". De-indenting the
block to column 0 makes each directive a real parameter. Verified against
Scaleway TEM: postconf then shows smtp_sasl_auth_enable = yes and delivery
succeeds (250 queued).

Signed-off-by: Corentin Giraud <corentin@giraud.dev>
2026-06-30 21:18:47 +02:00
BastienandGitHub fc0ff1b354 🔒️(chore) bump keycloak to 26.6.4 (#729)
https://www.cert.ssi.gouv.fr/avis/CERTFR-2026-AVI-0815/
2026-06-29 16:15:46 +02:00
BastienandGitHub 11d191d967 (chore) bump keycloak to 26.6.3 (#718) 2026-06-23 11:51:35 +02:00
Jean-Baptiste PENRATHandGitHub f0d8306902 🔖(minor) release version 0.8.0 (#715)
Update all version files and changelog for minor release.
2026-06-18 20:34:06 +02:00
jbpenrath 3f200ed04d 🔖(minor) release version 0.7.0
Update all version files and changelog for minor release.
2026-05-28 18:56:07 +02:00
Jean-Baptiste PENRATHandGitHub 550af75214 🔖(minor) release version 0.6.0 (#671)
Update all version files and changelog for minor release.
2026-05-26 16:21:59 +02:00
jbpenrath 0bdeb06a87 🔖(minor) release version 0.5.0
Update all version files and changelog for minor release.
2026-03-16 18:38:08 +01:00
jbpenrath db1957028c 🔖(minor) release version 0.4.0
Update all version files and changelog for minor release.
Added
- 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

Changed
- Bump keycloak to 26.5.4 #571
- Add migrations-check Makefile command

Fixed
- Preserve scroll position across renders #578
- Convert newlines to `<br>` in styled text #577
- Scope labels and user_role to the requested mailbox
2026-03-05 16:56:47 +01:00
jbpenrath eb58da7cf2 🔖(minor) release version 0.3.0
Added
- 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

Changed
- 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
- Remove Django i18n and backend translation catalogs #556

Fixed
- 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

Security
- Prevent IDOR on ThreadAccess thread and mailbox fields #557
- Add defense in-depth for XSS vulnerabilities #520
2026-02-25 09:47:48 +01:00
Sylvain ZimmerandGitHub f18277b742 🔨(devx) update developer experience: uv, rustfs, caddy, new makefile (#556)
This large PR modernizes the backend of the app:
 - Python Dependency Management: Poetry → uv
 - Object Storage for local dev: MinIO (now unmaintained) → RustFS
 - Makefile Target Standardization to align with other LaSuite repos
 - Internationalization Removal on backend: we only care about i18n on the frontend
 - Backend dependencies upgrade
2026-02-23 12:30:36 +01:00
Stephan MeijerandGitHub 9fd5eb6c43 👷(docker) add arm64 platform support for image builds (#554)
Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
2026-02-19 18:11:58 +01:00
BastienandGitHub 100f671e1e (chore) bump keycloak to 26.5.3 (#543) 2026-02-16 22:36:12 +01:00
jbpenrath 25e28cf69d 🔖(minor) release version 0.2.0
Update all version files and changelog for minor release.
2026-02-03 18:16:25 +01:00
Jean-Baptiste PENRATHandGitHub bd76a081e9 (frontend) forward attachments (#485)
When a user forward a message, attachments are now also forwarded. Also,
if some attachments has a cid and embdedded into the html body, this link is
preserved.
2026-01-25 12:06:52 +01:00
Jean-Baptiste PENRATHandGitHub a98f873c63 (backend) add admin message retry action and delivery status filter (#499)
- Allow to filter Message by recipient delivery status
- Allow to trigger retry send task in django admin
2026-01-22 18:11:44 +01:00
jbpenrath c33908f5df 🔖(patch) release version 0.1.1
Update all version files and changelog for patch release.
2026-01-22 10:10:16 +01:00
Jean-Baptiste PENRATHandGitHub 606f0cc144 🔧(backend) update Django admin URL handling (#498)
Updated the DJANGO_ADMIN_URL setting to ensure it does not end with a '/'.
It allows to keep simple redirect logic from the nginx proxy server and avoid
issues with django admin route paths.
2026-01-22 10:01:37 +01:00
jbpenrath cd261132e7 🔖(minor) release version 0.1.0
Update all version files and changelog for minor release.
2026-01-20 16:01:29 +01:00
jbpenrath 9614e9107b (global) mark thread as spam
Allow users to report a thread as a spam.
Also allow the user to mark the thread has not spam. Then in case of spam,
disable the attachment download for security purpose.
2026-01-14 13:50:20 +01:00
Jean-Baptiste PENRATHandGitHub bef485a7fd (search) improve recipient search filters (#476)
- `to` query key now looks up within `to`, `cc` and `bcc` message fields
- Add a `to_exact` query key to looks up only in `to` message field

Resolve #467
2026-01-12 19:18:09 +01:00
812cf51915 (all) allow to display external images through proxy (#469)
Allow to users to display external images from their email
through a secure proxy endpoint to ensure security and privacy
and respect iframe csp policy.

Co-authored-by: =?UTF-8?q?Ri=C3=ABl=20Notermans?= <riel@mosa.cloud>
2026-01-12 17:09:32 +01:00
jbpenrath cb2ac356cc (frontend) allow multiple thread selection
Add UI to select multiple thread to mark them as read/unread or assign them to
a label in batch
2025-12-17 11:09:55 +01:00
Jean-Baptiste PENRATHandGitHub 0e94d33736 👔(backend) add flag is_trashed to thread resource (#454)
Add a flag `is_trashed` to Thread model in order to monitor when a thread is
fully trashed. It helps to exclude those kind of threads in some views with
inactive message like archive or spam for example.

By default we exclude those kind of threads from results until user is looking
for trashed messages.
2025-12-17 10:06:13 +01:00
Jean-Baptiste PENRATHandGitHub b1eb39c641 (search) add spam folder and search functionality (#452)
Display the SPAM folder in the mailbox panel and allow to search SPAM
messages. Unlike other message flags, SPAM messages are not included
in search result by default
2025-12-11 09:31:59 +01:00
Niels Kersicandjbpenrath 1ac92fe44b 🔧(backend) add configurable Drive app name
Add DRIVE_APP_NAME variable that gets exposed via the config endpoint then
update frontend translation to use this variable into it.

Co-Authored-By: jbpenrath <jb.penrath@gmail.com>
2025-12-09 14:19:53 +01:00
jbpenrath 24f2644f0d (interop) allow to save an attachment into Drive workspace
Setup Drive resource server query to retrieve and save files from a configured
Drive instance through OIDC resource server.

https://github.com/suitenumerique/drive/pull/379
2025-12-01 19:32:07 +01:00
Sabrina Demagny c993fce5db (changelog) initialize the changelog file 2025-11-18 15:43:50 +01:00