Fix imapsync Migration Dates in Microsoft 365

Last updated:

Why Dates Go Wrong After imapsync to Microsoft 365

Migrating to Microsoft 365 with imapsync sounds reasonable. It is free, it is scriptable, and it handles IMAP-to-IMAP transfers well in most scenarios. But on Microsoft 365, one detail decides the date every email ends up with.

Exchange Online keeps the date it's given: when imapsync writes a message over IMAP, it passes each email's internal date along with it (--syncinternaldates is on by default), and the copy keeps that date. What imapsync passes, though, is the date the SOURCE server holds for each message, not the date the email was sent. On a healthy mailbox the two match. On a mailbox that was already migrated once or restored from a backup, the source may hold the date of that earlier operation, and imapsync copies it as is.

This is not a bug in Microsoft 365 or in imapsync. Each copy faithfully carries the date it was given. When that date was already wrong at the source, whether you migrate 500 emails or 500,000, every affected email shows the date of that earlier operation instead of the date it was received.

Imagine telling your IT director that the migration you ran over the weekend just flattened 6 years of email history into a single date. That is the reality administrators face after an imapsync migration to Microsoft 365. And unlike Google Workspace (where the Gmail web client can mask the problem), Microsoft 365 shows the wrong date everywhere - Outlook desktop, OWA, Outlook mobile, Microsoft Search. There is no client-side escape hatch.

How Corrupted Dates Damage Microsoft 365 Operations

In Microsoft 365, the damage is total and visible. Every client - Outlook for Windows, Outlook for Mac, OWA, Outlook mobile on iOS and Android - displays the migration timestamp. Users cannot sort by date, cannot find emails chronologically, cannot trust search results that filter by date range. A mailbox with 80,000 emails all showing "November 12, 2024" is functionally unusable for daily work.

The compliance implications are worse. Exchange Online Protection, Microsoft Purview, and retention policies all index the corrupted delivery timestamp. A retention policy set to delete emails older than 7 years operates on the wrong date - meaning emails from 2018 that should be approaching deletion now appear to be from 2024. Organizations under GDPR, HIPAA, or SEC regulations face real regulatory exposure when their email retention cannot be trusted. And if a legal hold request comes in for "all emails from Q3 2023," the corrupted dates mean Purview returns nothing - because according to the metadata, no emails exist from that period.

Redate.io connects to Microsoft 365 and applies its header chain analysis and date metadata reconstruction process to each affected message. It doesn't need to know which tool did the migration: it finds the emails whose displayed date doesn't match their original date. Each message is corrected and verified individually, with the original preserved in a backup folder. Redate.io has no mailbox size limit, and administrators can process multiple mailboxes one at a time.

Frequently Asked Questions

Doesn't --syncinternaldates protect the dates in Microsoft 365?

It does its job: Microsoft 365 keeps the internal date imapsync passes. But that date is the one the source server holds. If the source mailbox was itself migrated or restored before, its dates may already be wrong, and imapsync copies them faithfully.

Would a commercial migration tool have avoided this problem?

Not if the source dates were already wrong: any tool, commercial or free, can only pass the date the source holds, and a tool that doesn't pass the date at all gives the copy the date of the migration. Redate.io fixes the dates regardless of which tool caused the issue.

Can Redate.io process multiple Microsoft 365 mailboxes at once?

Yes. Each person signs in individually with their own Microsoft account, and Redate opens that one mailbox with the access that sign-in grants. Several mailboxes can be scanned and fixed this way, one sign-in at a time.

How long does it take to fix an imapsync-migrated Microsoft 365 mailbox?

Processing speed depends on mailbox size and Microsoft's API rate limits. A typical 30,000-email mailbox takes between 4 and 8 hours. Redate.io handles throttling automatically and resumes where it left off if interrupted.

Related fix guides

Free Scan