Bichon
Self-hosted email archiving server with full-text search
Alternative to: mimecast, proofpoint archive
1.5.3
2026-06-23Release 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 https://github.com/rustmailer/bichon/pull/298
New Contributors
- @shadowdao made their first contribution in https://github.com/rustmailer/bichon/pull/298
Full Changelog: https://github.com/rustmailer/bichon/compare/1.5.2…1.5.3