1.23.0 (7/19/2026)
Features:
- Added Office 365 shared mailbox support. (#2763) Thanks @Kevin-Hamilton!
- Added the ability to export folders to mbox files. (#2765) Thanks @Kevin-Hamilton!
- Added an option to count unread messages across all accounts. (#2779) Thanks @WebDevBar!
- Added a toggle for email render mode. (#2737) Thanks @AidanWarner97!
- Added an MCP server (off by default) that lets local agents interact with mail.
- On Linux, added a taskbar unread badge for KDE and other non-Unity desktops. (#2756) Thanks @WebDevBar!
Bug Fixes:
- Fixed a composer crash on quoted emails with inline images. (#2776)
- Fixed a composer crash when grammar-check decorations apply mid-composition. (#2775)
- Fixed missing Slate attributes on the IMAGE_TYPE fallback node. (#2774)
- Fixed a composer cut crash and suppressed Sentry noise from third-party plugins. (#2755)
- Fixed a crash when dragging threads to the sidebar after a thread is deleted. (#2760)
- Fixed a crash in
EventRSVPTaskwhen attendee ICS data goes stale. (#2770) - Fixed a crash in the translation plugin when the iframe
contentDocumentis not yet loaded. (#2752) - Fixed an onboarding crash when back-navigation empties the page stack. (#2750)
- Fixed
navigator.clipboard.writeTextin@electron/remoteMenuItem handlers. (#2754) - Fixed an
ERR_FILE_NOT_FOUNDcrash in Show Original when the RFC822 fetch fails. (#2772) - Fixed null crashes in
SendDraftTask, thread-sharing, and send-and-archive. (#2757) - Fixed a null crash in three IPC handlers when
BrowserWindow.fromWebContents()returns null. (#2758) - Fixed cancellation of
GetManyRFC2822Task(folder export). (#118) Thanks @Kevin-Hamilton! - Fixed handling of XDG paths. (#2761) Thanks @LinusDierheimer!
- On Linux, fixed an EPIPE crash loop in the uncaughtException handler. (#2769)
- On Linux, send
org.freedesktop.DBus.Hellobefore emitting the badge signal. (#2778) Thanks @WebDevBar! - Stopped startup after a fatal
config.jsonload failure. (#2764) - Guarded
nativeThemeremote object access inSystemTrayIconStore. (#2753) - Guarded grammar check so it no longer emits warnings when logged out.
Improvements:
- Added a macOS 27 icon variant.
- Reduced Sentry noise: expected IMAP/SMTP auth and connection failures are no longer reported. (#2762)
- Reduced Sentry noise from OAuth SSL failures and improved the mailsync crash message. (#2771)
- Downgraded the unknown-feature warning from an error report to a console warning. (#2759)
- Wrapped unhandled fetch errors in
APIErrorinmakeRequest. (#2766) - Fixed an uncaught 'error' event crash in
MailsyncProcess.sync(). (#2773) - Fixed an unhandled rejection in
IdentityStorebackground polling. (#2768)
Developer:
- Upgraded
@electron/packagerto prevent build hangs on newer Node.js versions. (#2767) Thanks @wrench-exile-legacy! - Get the desktop name dynamically from
package.jsonand stop hardcodingMailspring.desktop. (#2748, #2777) Thanks @LinusDierheimer! - Use a template var as the icon value in
Mailspring.desktop. (#2747) Thanks @LinusDierheimer! - Added branding colors to
appdata.xml. (#2751) Thanks @LinusDierheimer! - Fall back to ad-hoc signing in the copy-to-app build phase. (#117) Thanks @Kevin-Hamilton!