What's New in v1.5.0
New Features
- Drag message to folder — Drag any message from the list onto a sidebar folder to move it instantly, with a 4.5-second undo. Desktop only. (#130)
- Draggable and resizable compose window — The compose window can now be dragged by its title bar and resized from the bottom-right corner. Double-click the title bar to maximize. Desktop only. (#131)
- Folder search results — Searching now shows matching folders at the top of results alongside messages. (#138)
- UI lock screen — A lock screen is now shown when the session is inactive. (#139)
- Block list and advanced inbox rules — Inbox rules now support a block list, body/header rule conditions, and a regex operator. (#134, #150)
- Move-to-folder quick action — A move button is now available directly in the message toolbar.
- Favorites in folder picker — Favorited folders appear at the top of the folder picker for quick access.
- Full message header modal — The full raw headers for a message can now be viewed from the toolbar.
- Private/internal IMAP hosts — Accounts can now be configured with private or self-hosted IMAP hosts.
- Print email — Print the current message with a customizable Ctrl+P shortcut. (#129)
- Prev/next message navigation on mobile — Arrow buttons for navigating between messages are now available on mobile.
Bug Fixes
- Mark as read on navigation — Messages are now correctly marked as read when navigating with the prev/next arrows, swipe gestures, or keyboard shortcuts.
- SSL/STARTTLS on port 465 — Restored port-based SSL fallback so STARTTLS accounts configured on port 465 connect correctly.
- Inbox rules IMAP move order — Fixed a bounce-back bug where the DB was updated before the IMAP move completed in inbox rules.
- Mutually exclusive rule actions — Rules editor now enforces that destination actions (move, delete, etc.) are mutually exclusive.
- Reply alias detection — Fixed alias detection when the thread representative is a sent message.
- CSS leaking from quoted HTML — Stripped
<style>tags from quoted HTML to prevent email CSS from bleeding into the compose UI. - Color picker clamped to viewport — The color picker no longer overflows off-screen.
- Touch swipe and pull-to-refresh conflict — Resolved a gesture conflict between swipe actions and pull-to-refresh on mobile. (#127)
- Security — Resolved 11 audit findings across the backend.
- Commercial license URL — Updated the purchase link to the correct URL.
Internals
- Added ESLint to frontend and backend with CI enforcement.
- Community contribution: filled i18n translation gaps and added a coverage test. (PR #146, thank you @saiththerobo)