Linus Rath
4d846cfc91
fix: read the whole deleted items archive newest first and only for the account shown #1319
...
Stalwart's x:ArchivedItem/query without calculateTotal scans ids
ascending, stops at 5000 and only then reverses them, so the newest
items of a large archive never showed, and admin accounts got every
account's items. The review of the branch also found gaps around
account switches, restores and focus.
- Read the archive in pages of 500 with calculateTotal, newest first,
stop at a whole page older than the days limit, and offer
"Show older" after 2000 items; detection asks for one item.
- Send the accountId filter and fall back without it on
unsupportedFilter; keep only items of the account, never one without
an account id.
- Ask nothing until config and policy are loaded and the policy is the
current account's; the later check after a refusal is forced.
- Show the Trash link only when the archive holds a message inside the
days limit; the Settings page shows whenever the server has the
feature and says that archiving must be on in Stalwart.
- Restore: notFound leaves the list with a note, forbidden hides the
page, results for another account are dropped, the button keeps focus.
- Forget what servers said at a full sign-out.
2026-10-28 09:08:44 +01:00
Linus Rath
61d4e02e38
test: keep the Trash link out of a shared Trash without an account id
2026-10-28 07:39:00 +01:00
Linus Rath
ba6e6af014
feat: recover deleted items from Stalwart's archive #1319
2026-10-28 07:27:47 +01:00
Linus Rath
795faceee7
Merge branch 'feat/org-thirdparty' into feat/org-features
2026-10-28 05:51:22 +01:00
Linus Rath
00ea203f4f
refactor: describe the sending identity and account once for every send check
2026-10-28 05:50:17 +01:00
Linus Rath
687cd89346
Merge branch 'feat/org-external' into feat/org-features
...
# Conflicts:
# lib/outgoing/quick-reply.ts
# lib/outgoing/send-pipeline.ts
2026-10-28 05:46:11 +01:00
Linus Rath
b0eb9fcfe1
fix: say the organisation blocks remote content instead of offering to load it with no third-party traffic #903
2026-10-28 05:38:39 +01:00
Linus Rath
9f230ca8fc
fix: keep a quick reply as a draft when an automatic sign-out comes while the external recipient question is open
2026-10-28 05:23:25 +01:00
Linus Rath
823da8c810
Merge branch 'feat/org-features' into feat/org-external
...
# Conflicts:
# components/email/email-viewer.tsx
# components/mail/mail-app.tsx
2026-10-28 05:19:21 +01:00
Linus Rath
1202a13720
fix: judge external mail by the message's own account and the sending account in several-account setups
2026-10-28 05:11:24 +01:00
Linus Rath
60167f752f
fix: label mail as External when any sender is outside or has no domain, and show the domain on a tap
2026-10-28 05:09:35 +01:00
Linus Rath
836dcba66e
fix: don't count senders whose images the user allowed as contacts for the external recipient confirm
2026-10-28 05:09:03 +01:00
Linus Rath
2ace501871
Merge branch 'feat/org-features' into feat/org-signatures
2026-10-28 04:51:22 +01:00
Linus Rath
d128503db5
fix: use the organisation policy of the account a message is sent from
2026-10-28 04:32:39 +01:00
Linus Rath
b756111097
fix: add the disclaimer below plugin footers and before a plugin signs or encrypts the message
2026-10-28 04:25:25 +01:00
Linus Rath
7bbfe61783
fix: keep keys pressed in the external recipient confirm away from the mail shortcuts
2026-10-28 04:18:11 +01:00
Linus Rath
490818adee
fix: keep signature plugins from changing a locked organisation signature
2026-10-28 04:18:01 +01:00
Linus Rath
73c12d03eb
fix: ask about every external recipient but the identity's own Bcc, trust only the identity's From, and queue a second question
2026-10-28 04:15:12 +01:00
Linus Rath
da5d7baf51
fix: swap the signature in an open composer when the organisation policy or the user's details change
2026-10-28 04:12:15 +01:00
Linus Rath
ecbbe137c4
fix: wait for sends and keep quick replies as drafts before an automatic sign-out
2026-10-28 04:06:05 +01:00
Linus Rath
b945a789f9
fix: match internationalised domains in either form and name the domains an admin typed wrong
2026-10-28 04:05:46 +01:00
Linus Rath
3fbd5a7818
fix: check the signature and disclaimer in each part on its own so neither goes out twice
2026-10-28 04:00:25 +01:00
Linus Rath
65e83e4b0d
fix: show the session warning above every overlay and count the server's sign-in time
2026-10-28 03:53:56 +01:00
Linus Rath
f9a04126d4
fix: keep a quick reply's text when the user goes back instead of sending
2026-10-28 03:47:40 +01:00
Linus Rath
0154e24ffc
feat: add an admin disclaimer to every sent message
2026-10-28 03:17:03 +01:00
Linus Rath
65e3d0d2d4
feat: let admins set an organisation signature with user details per domain or group #908
...
Admins write an HTML and a plain-text signature with placeholders on
Organisation > Signatures, per scope. Users fill in the details it asks
for once, under Settings > Account. Without a lock it is the default for
addresses without a signature of their own; locked or hidden, it
replaces every signature.
- `lib/org-signature.ts` fills the templates: values escaped, lines whose
placeholders are all empty dropped
- the composer applies it right before the plugin signature, so new mail,
replies, forwards, re-opened drafts, plain text and identity swaps all
take it the way they take an identity signature; quick reply too
- a send finaliser puts a locked signature back once when it was deleted
- the identity editor shows the filled-in signature read-only with "Set
by your organisation" when locked, and no editor when hidden
- `signatureDetails` is a synced setting
2026-10-28 02:23:55 +01:00
Linus Rath
2855ca0010
feat: confirm before sending to recipients outside the organisation
2026-10-28 01:59:13 +01:00
Linus Rath
79c697a935
feat: let an automatic sign-out save open and minimised drafts first
2026-10-28 01:55:15 +01:00
Linus Rath
b504e39b63
feat: label mail from outside the organisation
2026-10-28 01:53:39 +01:00
Linus Rath
42f52ab066
refactor: send composer and quick reply mail through one send path
2026-10-28 01:08:56 +01:00
Linus Rath
7025548ba1
fix: drop the composer footer labels when the composer itself is narrow #1375
2026-10-27 23:27:51 +01:00
Linus Rath
87817f545f
fix: stop flagging invitations from users on your own domains as unverified #1374
2026-10-27 23:26:14 +01:00
Linus Rath
ec295ad59f
Merge pull request #1384 from VasilisNtovolos/fix/bulk-delete-partial-results
...
fix: reconcile confirmed permanent bulk deletions
2026-10-27 23:14:11 +01:00
Linus Rath
be5fc12622
feat: let each translation list its own placeholder fill-in words
2026-10-27 23:03:41 +01:00
Linus Rath
011ff0e93a
feat: warn before sending a message with unfilled placeholders
2026-10-27 22:30:33 +01:00
VasilisNtovolos
ac99c68ef3
fix: reconcile confirmed permanent bulk deletions
2026-10-27 14:51:38 +02:00
Linus Rath
9de2efb722
fix: open a shared or group account's message from its link instead of the own message with the same id #1351
2026-10-26 20:01:11 +01:00
Linus Rath
2f8b4863ff
Merge pull request #1338 from HOLOEYE-JZ/feat/plugin-search-results
2026-10-26 19:32:56 +01:00
Linus Rath
edba184bc0
fix: keep an Outlook-style reply from loading the quoted message's remote images
2026-10-26 19:30:18 +01:00
Linus Rath
12ee24a81a
Merge pull request #1355 from maxhaomh/fix/outlook-quote-lines
2026-10-26 19:28:56 +01:00
Linus Rath
e99cce05fe
Merge pull request #1370 from maxhaomh/feat/disable-quick-reply
2026-10-26 19:24:49 +01:00
Linus Rath
7677b87c5e
Merge pull request #1373 from motofix/fix/1371-download-name-slash
2026-10-26 19:23:56 +01:00
Julien Béti
460343d86d
fix: show inline images whose part name is a path #1371
2026-10-26 18:34:57 +01:00
Max Hao
7216089629
feat: add quick reply feature with toggle in settings and tests
2026-10-26 11:40:47 -04:00
Linus Rath
ceaa9cea39
fix: highlight only the open message in lists that mix accounts, not another account's message with the same id
2026-10-26 16:11:52 +01:00
Linus Rath
0b917d6262
fix: mark the replied, forwarded or receipted message as answered in its own account, not another account's message with the same id
2026-10-26 16:11:52 +01:00
Linus Rath
f0392a6705
fix: check a meeting reply's sender against the attendee who answers, not the organizer
2026-10-26 15:15:58 +01:00
Linus Rath
8c9cf8e63e
test: check draft account and threading headers in createDraft's options after the merge
2026-10-26 12:26:57 +01:00
Linus Rath
b038c82dcc
fix: only offer to apply a counter proposal sent by one of the meeting's participants
2026-10-26 12:25:31 +01:00
Linus Rath
b5c6b67ba4
fix: keep a link in a printed message from redirecting the webmail tab
2026-10-26 11:22:10 +01:00