Skip to content

Release 1.5.3

Latest

Choose a tag to compare

@rustmailer rustmailer released this 23 Jun 09:25
· 11 commits to main since this release

Release Notes

IMAP

  • Handle UIDVALIDITY changes via Message-ID comparison instead of full rebuild.
    Previously, a UIDVALIDITY change on the remote server forced a full mailbox
    rebuild, re-downloading every message. Now the sync compares local and remote
    messages by Message-ID, only re-downloading what actually changed. This is
    much faster and avoids unnecessary bandwidth for large mailboxes.

SMTP journaling

  • Reject journaling attempts to non-local accounts. SMTP deliveries targeting
    recipients that do not match a local account are now properly rejected during
    the SMTP transaction instead of failing later.

  • Don't clobber IMAP-owned INBOX uid_validity on journal ingest. Each SMTP
    journaling delivery was silently resetting the INBOX uid_validity to None,
    causing the next IMAP reconcile to treat the mailbox as invalid and trigger a
    full rebuild. For large inboxes with sparse UIDs, interrupted rebuilds could
    permanently lose the local copy. The journaling path now only creates the
    INBOX row when it does not already exist, leaving the IMAP-maintained metadata
    intact. (#297)

Storage

  • Purge DedupCache entries on account, mailbox, and envelope removal.
    Deleting an account, mailbox, or individual message now properly clears the
    in-memory deduplication cache, preventing stale entries from accumulating
    and consuming memory.

UI

  • Persist account table sorting to localStorage. The sort order on the
    accounts page is now saved and restored across page reloads.

What's Changed

  • fix(smtp): don't clobber the IMAP-owned INBOX uid_validity on journal ingest (#297) by @shadowdao in #298

New Contributors

Full Changelog: 1.5.2...1.5.3