v0.6.0
Breaking changes
-
The project was renamed from
imapbackuptomailvault. Same tool, new name -- the
PyPI nameimapbackupwas taken and the project now covers more than IMAP. The import
package is renamedimapbackup->mailvault. To keep the oldib-*commands, pin to the
last pre-rename release, v0.5.0 -
A single
mailvaultcommand replaces the threeib-mailbox/ib-archive/ib-copy
tools. The subcommands map directly:ib-mailbox folders|backup|verify->mailvault folders|backup|verifyib-copy copy [--idle]->mailvault copy [--idle];ib-copy folders->mailvault copy --list-foldersib-archive <sub>->mailvault archive <sub>, withdb-from-archiverenamed torebuild-db
Global options are unified across all commands (
-v/--verbose,-q/--quiet,--log-file,
--config,--allow-exec,--job) and must precede the command. The Windows build now
ships a singlemailvault.exeinstead of threeib-*.exe
Changed
-
The Microsoft Graph backend is now a core dependency (
msal,httpx), no longer an
optionalgraphextra. Microsoft 365 is a first-class mailbox source, somailvaultalways
ships with Graph support. Themailvault[graph]install variant no longer exists -- install
mailvaultplainly -
Job configuration is validated up front: an unknown
backendvalue, or amsgraphjob
missingtenant_id/client_id/client_secret, now fails immediately with a clear error
naming the job. Previously an unknown backend silently fell back to IMAP and missing Graph
credentials only surfaced deep in the backend -
copy --idlenow reports a clear error when the source mailbox is not an IMAP backend,
instead of failing later with an internal error. IDLE is an IMAP-only feature
Fixed
- Message-ID matching: a malformed Message-ID such as
<>no longer crashes a run on
Python 3.11/3.12, where CPython's email header parser raisesIndexErroron such values.
The value is now treated as unusable (empty key), consistent with the behaviour on 3.13+