How to check that a converted, repaired or imported mailbox is really complete

"Completed" in a progress bar means the tool stopped without an error, not that every message arrived. A practical way to check a PST, MBOX or Microsoft 365 import against its source, what the numbers can and cannot tell you, and the traps that make honest results look wrong.

Published Facts checked 11 min read
Four levels of checking a converted mailbox, from weakest to strongest: the file copied (hash), the totals match (item counts per folder), the content matches (spot checks of messages and attachments), and every item is accounted for (logs and skipped item reports).
Each level catches problems the one before it cannot.

To check that a conversion, repair or import is complete, write down the item count of every folder in the source before you start, compare it with the same folders afterwards, open a sample of messages and attachments on both sides, and read the tool’s log or skipped-items report. A file size or a “completed” message is not enough on its own: sizes legitimately change between formats, and many tools skip what they cannot read without stopping.

The right level of checking depends on what is at stake. A personal archive you are moving to a new computer needs the first two steps. A mailbox kept for legal, financial or records reasons needs all of them, written down.

Before you start: record the source

Checking afterwards only works if you know what you started with. Before converting, repairing or importing anything:

  1. Keep the source untouched. Work on a copy, so the original is still there to compare against and to retry from.
  2. Record the count of every folder, including subfolders. In classic Outlook, right-click a folder, choose Properties, and on the General tab select Show total number of items. Microsoft notes that “Multiple folders can’t be changed at the same time”, so this is one folder at a time (Microsoft Support). In new Outlook and Outlook on the web, hovering over a folder shows its total.
  3. Note a handful of specific messages to look for later: the oldest one, the newest one, one with a large attachment, one with non-English characters in the subject, and one from a deeply nested folder.

For a large mailbox, a quicker way to get every folder’s count at once is to open the PST in a reader that lists them all. The PST Viewer shows each folder with the number of messages stored in the file, in your browser and without uploading it.

Level 1: did the file copy correctly?

When you copy or move a PST, MBOX or any archive file, a hash tells you whether the copy is byte for byte identical. In PowerShell:

Get-FileHash "D:\Archive\mail.pst"
Get-FileHash "E:\Backup\mail.pst"

Microsoft’s Get-FileHash documentation puts it simply: “If the hash values of two files are identical, the contents of the files are also identical.” It uses SHA-256 by default.

A hash only proves a copy. After a conversion (PST to MBOX), a repair or an import, the bytes are meant to be different, so hashes will never match and say nothing about whether the mail came through. For that you need the next levels.

Level 2: do the totals match?

Compare each folder’s count in the result with the count you recorded. Compare folder by folder rather than the grand total, because a missing folder can hide behind an extra one elsewhere.

When the numbers do not match, the cause is often something other than loss. Check these before you conclude that mail is missing:

  • Not everything is a message. Calendar items, contacts, tasks and notes count in Outlook folders, but an MBOX or EML export carries only mail. Compare mail folders with mail folders.
  • Duplicates were skipped or added. Outlook’s import wizard can skip duplicates. Microsoft 365’s PST import service detects them only by an internal ID it stamps on imported items, and “doesn’t use content-based matching criteria such as message subject, date, body, or size”, so the same mail imported from two different PSTs becomes two copies (Microsoft Learn).
  • Hidden folders. In Exchange Online, Get-MailboxStatistics counts items in folders reserved for internal use, so its total is higher than the sum of visible folders from Get-MailboxFolderStatistics. Microsoft says this is by design and to use the folder statistics to “represent the total number of items that are visible to clients” (Microsoft Learn).
  • Outlook is not showing everything. If you compare against a live mailbox in classic Outlook, Cached Exchange Mode may only hold the last year or less. Our article on emails missing from Outlook covers this and other display causes.
  • Mail landed elsewhere. Imports can place everything inside the folder that was selected, or in a new folder: Microsoft 365’s network upload puts data in “a new folder named Imported” when no target folder is given (Microsoft Learn).

For Exchange Online mailboxes, per-folder counts come from PowerShell:

Get-MailboxFolderStatistics -Identity user@example.com |
  Format-Table FolderPath, ItemsInFolder, ItemsInFolderAndSubfolders -AutoSize

Add -Archive for the archive mailbox. Microsoft now recommends Get-EXOMailboxFolderStatistics for Exchange Online (Microsoft Learn).

Why file size is a poor check

A converted file is rarely the same size as the original, and that is not a sign of loss. PST files keep free space inside them until they are compacted, attachments are stored differently in MBOX and EML (as text-encoded data, which is about a third larger), and repaired files are rebuilt from scratch. A large difference in size is a reason to look closer; a small one proves nothing.

Level 3: does the content match?

Equal counts can still hide damaged messages: a body that came through empty, a garbled subject, an attachment of zero bytes. Open the messages you noted before you started and compare them side by side:

  • sender, recipients, date and subject, including any non-English characters;
  • the body, especially formatted (HTML) and old rich text messages;
  • every attachment: open it, and compare its size with the original;
  • messages attached to other messages;
  • the oldest and newest messages, and something from the deepest folder.

For MBOX files, be aware that the format has no single standard. RFC 4155 states that “the mbox database format is not documented in an authoritative specification” (RFC 4155), and the Library of Congress lists four variants that are not fully compatible: messages “cannot be reliably read from MBOXO and MBOXRD format mailboxes by MBOXCL and MBOXCL2 readers” (Library of Congress). A count that is too high after an MBOX conversion often means a reader split one message in two at a line starting with “From ”.

Level 4: is every item accounted for?

The strongest check is a record, from the tool itself, of what it did not copy. Count comparisons tell you that something is missing; a log tells you what.

  • SCANPST (Inbox Repair Tool) writes a log file during the scan by default. Microsoft explains that when it finds an unreadable block that belongs to a message, “the item will be removed”, and that this “will always be entered in the ScanPST log file” (Microsoft Learn). After a repair, read the log, and look in the Lost and Found folder for items it could not put back.
  • Exchange Online migrations and PST imports produce a DataConsistencyScore (Perfect, Good, Investigate or Poor), and the skipped items can be listed per user in the Exchange admin center under Migration › View details › Skipped item details, or in PowerShell with Get-MigrationUserStatistics -IncludeSkippedItems (Microsoft Learn).
  • Outlook’s own import wizard gives no report. Microsoft’s only completion signal is that “When the progress box disappears, the import is finished.” Count comparison is the only check you have.
  • Google Vault exports include a count file with SuccessCount and MessageErrorCount per account (Google Workspace).

A short checklist

StepPersonal archiveRecords or legal
Work on a copy, keep the source untouchedYesYes, and record the source file’s hash
Record per-folder counts beforeYesYes, saved with the date
Compare per-folder counts afterYesYes, with differences explained
Spot-check messages and attachmentsA fewA documented sample
Read the tool’s log or skipped-items reportIf there is oneRequired; keep it
Keep the source until checkedYesPer your retention rules

Tools that check their own work

Checking by hand is necessary because most tools do not tell you what they skipped. Mailtria’s tools take the opposite approach: the security page explains that a result “is not shown until it has been read back and compared with the source”, converted and repaired messages one by one, and that the report you can save “lists every check that ran and anything that could not be recovered or converted.” That makes Level 4 part of every run, though a spot check of the messages that matter most to you is still worth the few minutes it takes.

Sources

PST ViewerOpen and read the PST without Outlook. It runs in your browser; nothing is uploaded.
Open PST Viewer