Fix imapsync Migration Dates in Microsoft 365

Why imapsync Breaks Email Dates in 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 Exchange Online is not "most scenarios."

Exchange Online's IMAP gateway is a compatibility layer bolted onto a system designed around EWS and MAPI. When imapsync pushes a message through this gateway via the standard mail transfer protocol, the message enters Exchange Online's full transport pipeline - the same pipeline that processes incoming mail from the internet. That pipeline adds transport headers, runs Data Loss Prevention checks, applies compliance rules, and stamps a fresh Received header with the exact moment the message hit the server. The --syncinternaldates flag? Exchange Online's transport pipeline does not care about it. The INTERNALDATE gets overwritten to match the delivery timestamp.

This is not a bug that Microsoft plans to fix. It is how Exchange Online's architecture works. The transport pipeline treats every the standard mail transfer protocol as a new message delivery, period. Whether you migrate 500 emails or 500,000, every single one gets the same migration date stamped into its headers and metadata.

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 broken 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. Pattern matching across imapsync's specific migration tool signatures identifies which Received headers were injected during migration versus which belong to the original delivery chain. Each message is corrected and verified individually, with the original preserved in a backup folder. The Enterprise plan handles mailboxes up to 100,000 emails, and administrators can process multiple mailboxes from one dashboard.

Frequently Asked Questions

Why does --syncinternaldates not work with Microsoft 365?

Exchange Online processes every IMAP upload through its transport pipeline, which treats the message as a new delivery and overwrites the INTERNALDATE. The pipeline also adds its own Received header with the upload timestamp. These are server-side behaviors that no imapsync flag can prevent.

Would a commercial migration tool have avoided this problem?

Most commercial tools (BitTitan MigrationWiz, CloudM, Quest) produce the same date corruption because the root cause is Exchange Online's transport pipeline, not the migration tool itself. Redate.io fixes the dates regardless of which tool caused the issue.

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

Yes. Redate.io supports bulk mailbox processing for Microsoft 365 tenants. Administrators connect once through Azure AD and can scan and fix mailboxes across the organization from a single dashboard.

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