Skip to content
Trusted IT partner since 1994+1 917 628 2365
Free Security Check[email protected]
Mailbox cold storage for Microsoft 365 · self-hosted

Old mail out of Exchange.

MailVault moves mail older than X days out of your Microsoft 365 mailboxes — across every tenant you look after — into your own Wasabi bucket, one .eml per message, filed exactly like the mailbox. It reads every copy back before it touches the original, and it touches nothing at all until a policy says so.

Live · archiving
Exchange Online used
—
Safely in Wasabi
—
Verified today
—
Freed in Exchange today
—

    Four synthetic Microsoft 365 tenants and 292 mailboxes, archiving live on the server. Watch Exchange go down while Wasabi grows.

    > Watch the walkthrough

    See it running, in under two minutes

    Narrated tours of the product on the same synthetic data. The live application itself is shown on a call.

    A tour of the mailbox archiving console

    Tenants and storage, one message copied and proven in Wasabi, the policy gates, mailboxes, runs and policies.

    1:58
    The MailVault dashboard: the tenant list with a colour and a mark for each company, and the storage watch listing mailboxes fullest first, with a note on how much is held in Recoverable Items.
    > Every tenant, one console

    Which mailboxes are full, and what is being done

    • 1Storage watch: for every mailbox in every tenant, fullest first, with alerts as it crosses 85, 90, 95 and 100%.
    • 2Recoverable Items shown separately: purged mail still counts against the quota until Exchange clears it, and the console says so instead of looking broken.
    • One stop switch: blocks every delete and move across all tenants at once. Archiving and verification carry on.
    • 4A colour and a mark per tenant: because “which company is this row in?” decides whether a button is routine or a catastrophe.
    One archived message followed end to end in four steps: the original in Exchange Online, the copy in Wasabi, the verify gate and the policy action.
    > One message, end to end

    Copy it. Prove the copy.

    • 1The original: is fetched from Exchange Online as raw MIME — headers, body, attachments — and hashed while it streams.
    • 2The copy: lands in Wasabi under a key that mirrors the mailbox, so the bucket reads like Outlook.
    • 3The verify gate: reads the object back and compares length and SHA-256. A mismatch is quarantined and never deleted.
    • 4The policy action: nothing, move, delete, or permanent delete — runs only on a proven copy. Try it yourself: permanent delete wants PURGE typed in.
    The mailbox list with filters for shared mailboxes and mailboxes gone from the tenant, and a bulk edit bar open after selecting every mailbox in the filter.
    > Mailboxes

    Discovery fills the list. You decide what is archived.

    • 1Users and shared mailboxes: found in every tenant — with the size, the quota and when anyone last used each one.
    • 2Nothing is switched on by itself.: A mailbox needs a Wasabi account, a bucket and a policy before it is ever touched.
    • 3A mailbox that leaves the tenant keeps its archive: it is marked and switched off, never deleted from the ledger.
    • 4Bulk edits: by filter — every shared mailbox over 85%, say — and changes save as you make them.
    A run in progress: counters for scanned, archived, verified and throttled messages, a button for the dry-run report, and per-mailbox progress below.
    > Runs

    Hundreds of mailboxes, one honest log

    • 1Live progress per mailbox: folder by folder, scanned, archived, verified, removed, quarantined.
    • 2Graph throttling handled: three requests per mailbox, many mailboxes side by side, every 429 waited out on its Retry-After.
    • 3Scan only: counts what would be archived without writing a byte; dry-run reports list what a policy would remove, as CSV.
    • Idempotent and resumable: a run that dies halfway picks up from the ledger.
    The standard policy form: age and caps per run, the action after the copy verifies, and the dry-run mode choice, with a New policy button above.
    > Policies

    Start at 90 days. Ratchet down when the reports look right.

    • 1Age, folder scope and per-run caps: per policy; the floor is 7 days.
    • 2After the copy verifies: nothing, move to a folder, delete to Deleted Items, or permanent delete.
    • 3Dry run is a two-option choice: not a checkbox that can be lost on the way to the server.
    • 4A guided “New policy”: that ends on a plain-English review of exactly what will happen.
    > How it works

    From a 90-day-old message to a freed megabyte

    One multitenant Entra application, consented per tenant with a device code. Your Wasabi keys, your buckets. A web console and a worker on one small Linux host you control.

    Exchange OnlineGraph · ImmutableId · older than X days
    MailVault workerraw MIME · hashed in flight · bounded spool
    Your Wasabi bucket<mailbox>/<folder>/YYYY/MM/…eml
    Verify gateread back · length + SHA-256
    Policy actionnone · move · delete · PURGE
    01

    Many tenants, one app

    Deploy & consent signs in once as each tenant's Global Administrator with a device code. No portal clicking, no redirect URIs, and it grants only what is missing on a re-run.

    02

    The bucket mirrors the mailbox

    One prefix per address, then the folder tree as the user nested it. Each object also carries mailbox, folder, ids and digest as metadata, so the archive describes itself.

    03

    Search and restore

    One search across live mailboxes, the ledger and the bucket. Open a message safely — HTML sandboxed, no remote images — and put it back in its original folder.

    04

    Throttling is the only limit

    Graph allows four requests per app and mailbox. MailVault uses three per mailbox and runs mailboxes side by side, so bandwidth is never the bottleneck.

    05

    Alerts that mean something

    Telegram messages when a mailbox crosses a quota band, a run fails, or discovery finds a change — and silence when nothing happened.

    06

    Everything in the log

    Exactly one audit row for anything that changed state, plus every read that disclosed mail: opening, searching, downloading.

    0
    deletions before the copy is read back
    SHA-256
    on every message, stored with the object
    7 days
    age floor — ratchet from 90 to 30 to 14
    40%
    most a run may remove from one mailbox
    > For your team

    Why it fits an IT team or MSP

    Self-hosted

    Two services under systemd. Secrets encrypted with a key that lives outside the database. No environment variables to leak.

    Your bucket, your keys

    Mail goes straight from Microsoft 365 to a Wasabi bucket you own. Turn on versioning and Object Lock for retention you can prove.

    Helpdesk can restore

    A search-and-restore role finds a message and puts it back in its own mailbox — and can do nothing that deletes.

    Sign-in that holds

    Password plus authenticator app for everyone, or the domain password via on-premises AD, with Turnstile in front.

    Who is still using it?

    Last sign-in and last mailbox activity per mailbox, so 48 GB nobody has opened in two years stands out from 48 GB read every morning.

    Works on a phone

    The whole console, including the stop switch, is usable from a phone when a run needs stopping at 2 a.m.

    > Let's talk

    Tell us what you're trying to achieve.

    Book a 30-minute call or send a message and you'll reach a senior RHC Solutions consultant — not a ticket queue. Tell us how many tenants and mailboxes you look after, roughly how full they are and whether you have retention duties, and we'll come back with a walkthrough on numbers like yours within one business day.

    Complete the verification to send

    By submitting this form, you agree to our privacy policy.

    Response time
    Within one business day · 24/7 for managed clients

    Everything shown in this demo is synthetic: every company, person, number and address is invented. Microsoft 365, Exchange Online and Microsoft Entra are trademarks of the Microsoft group of companies; Wasabi is a trademark of Wasabi Technologies LLC. MailVault is not affiliated with or endorsed by either.