How we test

A tool that rewrites your mail archive has to be right. This is how every part of the engine is checked before a release, and what each result is checked against while you use it.

Built from the published format

The engine reads and writes PST files from Microsoft's own specification of the format, [MS-PST], which Microsoft publishes openly. MSG files follow [MS-OXMSG], and EML and MBOX follow the Internet mail standards. The engine is written in Rust with no unsafe code, and the same engine runs in your browser, in the Windows app and in the command-line tool.

Checked by readers we did not write

Our own reader agreeing with our own writer would prove little. Every file the engine creates in testing is also opened by two independent PST readers written by other people, libpff and outlook-pst, and their view of the folders, messages and properties must match ours. Tests fail if any of them disagrees.

Opened in Outlook, checked by SCANPST

Results from every operation (new, repaired, split, merged and deduplicated files) are opened in classic Outlook and checked with SCANPST, Outlook's own Inbox Repair Tool.

Damaged and hostile files

  • Damage sweeps: more than 400,000 deliberately damaged copies of our test PST files, to make sure the engine reports damage instead of crashing or making things up.
  • Repair: a 900-case campaign of damaged files with known content. The repair never claimed a message it did not save, and recovered every message the damage did not touch.
  • Fuzzing: millions of machine-generated malformed PST, OST, EML, MBOX and MSG inputs against every place the engine reads a file, with memory checking switched on.
  • Crafted files: files designed to exhaust memory or loop forever. Each one has a limit that stops it cleanly.

Large archives

  • A 5.26 GB archive with 120,000 messages, opened and copied in Chrome and opened in Outlook.
  • A single file with 300,000 messages and one with 5,000 folders, read back in full.
  • Jobs cancelled and processes killed half-way, to check that nothing half-written is ever left behind as if it were finished.

Checks on your own file, every time

Testing before a release is half of it. Each time you run a tool, the result is read back and compared with your source before you can save it: repaired and converted messages one by one, split parts against the original, archives entry by entry. The report lists every check and anything that could not be saved. Your original file is never changed. See Security for how your files stay on your computer.

Questions

If something does not match what is on this page, or a file gives a result you did not expect, write to support@mailtria.com. Send the report the tool saves, never the mail file itself.