v3.2.5
Mostly a search release. Subfolder search went from silently broken to working two different ways, and a couple of long-running Nextcloud migration problems finally got tracked down (I hope!).
Subfolder search (#16)
Picking "subfolders" in Advanced Search used to fail with "message list is not available", or quietly search only the current folder.
- feat: cross-folder search via IMAP MULTISEARCH (RFC 7377) on servers that support it
- feat: fallback for servers that do not, searching each folder of the subtree in turn. On by default, switchable in Admin, Config, under
imap - feat: results grouped under a folder header so you can see where each match came from
- fix: the
INclause was sent inside a plainSEARCHcommand, which is invalid and made Cyrus reject the search outright - fix: list actions (delete, move, mark read, flag) now act on each message's own folder instead of assuming the current one, which would have hit the wrong mailbox once results span folders
- fix: one folder refusing a search no longer discards every other result. That is why "text" searches came back empty while "subject" searches worked
- fix: stable result ordering, so paging through cross-folder results no longer repeats or skips messages
One caveat worth stating plainly: the MULTISEARCH path has not been tested against a real MULTISEARCH server yet, since Dovecot only gained it in 2.4. If you run Cyrus or Dovecot 2.4, I would like to hear how it goes.
Nextcloud integration (#13)
Two separate problems, both hitting people migrating from SnappyMail.
- fix:
app_pathwas only set when empty, so migrated installs kept pointing at the old snappymail directory - fix: the nextcloud plugin was skipped whenever its folder already existed, leaving SnappyMail-era code in place. That is where the
OC\Server::getUserSession()failure on NC34 was coming from. It is now always reinstalled
Dracula theme
- feat: new Dracula theme with a proper Alucard light mode, using the official palettes
- fix: live dark/light switching without a page reload. The selector was
[data-color-scheme] :root, which can never match - fix: readable text on green buttons in dark mode
S/MIME
- fix: signing works with unencrypted private keys. The flag was never set unless a passphrase was requested
- fix: dead code in
openssl.phpthat could return an undefined variable when encrypting
Message list
- fix: searching or changing page clears the list and shows the loading spinner. It previously left the old messages on screen, so a slow search looked like nothing was happening
Thanks
@hbarel for the Nextcloud report, and for spotting that the error traced back to an old appdata_snappymail plugin file, which is what finally cracked it. @rainerzufall for the NC33 follow-up and the screenshot showing app_path still pointing at snappymail. @realsimix for the subfolder search report, and for being specific that subject searches worked while text searches did not, which pointed straight at the bug.