Импорт IMAP Exchange: проблемы с датами и исправление

6 min

Что такое импорт IMAP центра администрирования Exchange?

Microsoft предоставляет встроенную функцию миграции IMAP в центре администрирования Exchange (EAC), позволяющую администраторам импортировать почту с любого IMAP-сервера в Exchange Online (Microsoft 365). Этот нативный инструмент предназначен для организаций, мигрирующих с не-Microsoft платформ: Gmail, Zimbra, Dovecot, Courier, хостинг cPanel и любых серверов с поддержкой IMAP.

Импорт IMAP центра администрирования Exchange часто первое, что пробуют администраторы. Никакого стороннего ПО. Никаких дополнительных лицензий. Встроен прямо в интерфейс администрирования Microsoft 365. Кажется очевидным выбором.

Но этот нативный инструмент Microsoft вызывает ту же проблему с датами, что и сторонние инструменты миграции. После импорта IMAP через центр администрирования Exchange каждое мигрированное письмо показывает дату миграции вместо исходной даты получения. Пользователи открывают Outlook и обнаруживают, что годы почтовой истории якобы пришли в один день. Собственный инструмент Microsoft ломает даты в собственном почтовом клиенте Microsoft.

Как импорт IMAP Exchange вызывает проблемы с датами

Процесс импорта

Импорт IMAP центра администрирования Exchange работает, подключаясь к IMAP-серверу источника, скачивая каждое письмо и вставляя в целевой ящик Exchange Online. При вставке Exchange Online обрабатывает каждое импортированное письмо как новую доставку и добавляет транспортные заголовки, включая "Received" с текущей меткой времени, то есть датой импорта.

Заголовок "Received", добавленный Exchange Online

Когда Exchange Online получает сообщение (будь то нормальная доставка или импорт IMAP), он добавляет заголовки "Received", документирующие путь через транспортную инфраструктуру Microsoft. Эти заголовки содержат метки, отражающие момент обработки. Для импортированных писем метки соответствуют дате и времени операции импорта, а не исходной доставки.

Типичный "Received", добавленный Exchange при импорте IMAP:

Received: from BN6PR01MB1234.prod.exchangelabs.com
  by BN6PR01MB5678.prod.exchangelabs.com with HTTPS;
  Mon, 15 Jan 2024 08:30:45 +0000

Этот заголовок помещается в начало цепочки, становясь самым свежим "Received". Outlook считывает его для определения даты получения и показывает дату импорта для каждого мигрированного письма.

Почему собственный инструмент Microsoft имеет эту проблему

Кажется абсурдным, что инструмент миграции Microsoft вызывает проблему отображения дат в почтовом клиенте Microsoft. Но объяснение логично: импорт IMAP корректно фиксирует момент обработки (требование стандартов транспорта email), а Outlook корректно читает самый свежий "Received" (стандартное поведение клиента). Комбинация двух правильных поведений даёт неправильный результат для мигрированных писем. Два правильных действия, дающих неверный итог. Для полного технического объяснения см. почему письма показывают неправильные даты после миграции IMAP.

Настройка импорта IMAP (не предотвращает проблему)

Параметры центра администрирования Exchange

Импорт IMAP предлагает параметры маппинга папок, фильтрации и планирования пакетов. Но ни один из них не контролирует, как Exchange Online обрабатывает заголовки "Received" при импорте. Нет галочки "сохранить исходные даты" и нет параметра, предотвращающего добавление транспортных заголовков. Проблема с датами - следствие архитектуры транспорта, а не пропущенная настройка.

Cmdlet PowerShell для миграции

Администраторы, использующие PowerShell cmdlet (New-MigrationBatch, New-MoveRequest) для IMAP-миграции, имеют доступ к дополнительным параметрам, но ни один не предотвращает добавление "Received". Start-MigrationBatch и связанные команды управляют процессом миграции, а не транспортным поведением Exchange Online. Даже при тщательнейшей настройке PowerShell импортированные письма будут показывать дату миграции в Outlook.

Влияние на Outlook и OWA

Outlook Desktop

Outlook Desktop затронут больше всего. Вид по умолчанию сортирует по "Получено", показывая метку импорта для каждого мигрированного сообщения. Пользователи, зависящие от поиска, сортировки и фильтрации по дате, теряют рабочий процесс. Входящие за пять лет выглядят так, будто всё пришло в один день. Как найти важное письмо 2021 года, когда каждое утверждает, что пришло в январе 2024?

Outlook в вебе (OWA)

OWA показывает те же неправильные даты, что и десктопный Outlook. В отличие от Gmail веб (который иногда читает заголовок "Date"), OWA последовательно использует метку доставки Exchange. Никаких настроек или опций OWA не показывают исходную дату вместо даты импорта.

Outlook Mobile

Outlook Mobile (iOS и Android) также показывает дату импорта. Проблема единообразна на всех платформах Outlook, так как все читают одно значение даты из Exchange Online. Для подробного руководства по Outlook см. исправление неправильной даты Outlook после миграции.

Обходные решения (и почему они не работают)

Сортировка по дате "Отправлено"

Самый частый совет - переключить вид на "Отправлено". Хотя порядок меняется, данные - нет. "Получено" остаётся неправильной в поиске, правилах, инструментах комплаенса и прочих функциях. И каждый пользователь должен менять настройки на каждом устройстве.

Повторный запуск импорта IMAP

Повторный импорт не исправляет даты. Второй импорт добавляет ещё набор заголовков "Received" с новой меткой, усложняя цепочку без исправления даты. Повторный импорт также может создать дубликаты.

Использование другого инструмента

Переход на сторонний инструмент (BitTitan, CloudM, imapsync) не решает проблему. Любой инструмент, вставляющий письма в Exchange Online, вызывает то же добавление транспортных заголовков. Проблема в том, как Exchange Online обрабатывает входящие сообщения, а не в инструменте миграции. Для сравнения всех вариантов см. можно ли исправить даты после миграции.

Исправление дат импорта IMAP Exchange с Redate.io

Как Redate.io определяет заголовки импорта Exchange

Redate.io подключается к Exchange Online и пропускает каждое письмо через проприетарный многоступенчатый конвейер анализа. Для импортов IMAP Exchange Redate.io сопоставляет сигнатуры миграции по сотням профилей, включая паттерны транспортной инфраструктуры Exchange Online (вроде "prod.exchangelabs.com"), чтобы точно определить, какие заголовки "Received" добавлены при импорте, а какие являются частью оригинальной цепочки доставки.

Результат работы Redate.io

После обработки каждое исправленное письмо показывает исходную дату получения в Outlook, OWA и всех клиентах. Хронология восстановлена. Каждая коррекция проходит проверку целостности, оригиналы хранятся в папке "Redate.io - Originals" 30 дней. Движок обрабатывает краевые случаи: подписи S/MIME, шифрование PGP, multipart MIME с вложенными границами, вариации кодировки и повреждённые MIME-границы. На самом деле это намного больше, чем простой поиск-замена.

Подключение к Exchange Online

Redate.io подключается через регистрацию приложения Azure AD (Entra ID) с аутентификацией OAuth2. Администратор создаёт регистрацию, предоставляет разрешения Mail.ReadWrite и даёт административное согласие. Пароли пользователей не требуются. Настройка занимает около 15 минут.

Руководства по платформам

Часто задаваемые вопросы

Это известная проблема Microsoft?

Microsoft официально не документирует это как известный дефект импорта IMAP. Тикеты поддержки обычно получают обходные рекомендации (сортировка по дате Отправлено), а не решение. Проблема является следствием стандартного транспортного поведения Exchange, а не багом функции импорта.

Может ли PowerShell исправить даты после импорта?

Нет. Exchange Online PowerShell не предоставляет cmdlet для модификации сырого содержимого существующих сообщений. Set-Mailbox и связанные cmdlet управляют конфигурацией ящика, а не заголовками отдельных сообщений. Коррекция требует работы на уровне, который PowerShell просто не раскрывает для Exchange Online.

Работает ли Redate.io с гибридным Exchange?

Да. Redate.io работает с любым ящиком в Exchange Online, независимо от того, использует ли организация гибридную конфигурацию Exchange. Коррекция применяется к ящику Exchange Online и не требует доступа к серверам Exchange on-premises.

Импорт IMAP Exchange исказил все даты? Запустите бесплатный анализ с Redate.io, чтобы определить затронутые письма в каждом ящике и восстановить правильные даты.