Імпорт IMAP Exchange: проблеми дат та виправлення

7 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. Ці заголовки містять часові штампи, що відображають момент обробки повідомлення Exchange Online. Для імпортованих листів ці часові штампи відповідають даті й часу операції імпорту, а не оригінальній даті доставки.

Типовий заголовок "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 коректно фіксує момент обробки повідомлення (вимога стандартів транспорту електронної пошти), а Outlook коректно зчитує найновіший заголовок "Received" для визначення дати отримання (стандартна поведінка поштового клієнта). Поєднання двох правильних поведінок створює некоректний результат для перенесених листів. Дві правильні речі, що разом дають хибний результат. Для повного технічного пояснення див. чому листи показують хибні дати після міграції IMAP.

Налаштування імпорту IMAP (не запобігає проблемі)

Налаштування Центру адміністрування Exchange

Імпорт IMAP Центру адміністрування Exchange пропонує параметри конфігурації для відображення тек, фільтрації елементів та планування порцій міграції. Але жоден з цих параметрів не контролює, як Exchange Online обробляє заголовки "Received" під час імпорту. Немає прапорця "зберегти оригінальні дати" і жодного налаштування, що запобігає Exchange додавати транспортні заголовки. Проблема дат - наслідок архітектури транспорту повідомлень, а не відсутній параметр конфігурації.

Командлети PowerShell для міграції

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

Вплив на Outlook та OWA

Outlook Desktop

Outlook Desktop є найбільш ураженим клієнтом. Стандартний режим перегляду сортує листи за датою "Отримання", яка показує часовий штамп імпорту для кожного перенесеного повідомлення. Користувачі, що покладаються на пошук, сортування та фільтрацію за датою, бачать повністю зламаний робочий процес. Поштова скринька, що охоплює п'ять років кореспонденції, виглядає так, ніби все надійшло одного дня. Як знайти той важливий лист з 2021 року, коли кожне повідомлення стверджує, що надійшло у січні 2024?

Outlook on the web (OWA)

OWA відображає ті самі хибні дати, що й Outlook Desktop. На відміну від вебінтерфейсу Gmail (який іноді зчитує заголовок "Date"), OWA систематично використовує часовий штамп доставки Exchange. Жодне налаштування чи опція відображення OWA не показує оригінальну дату замість дати імпорту.

Outlook Mobile

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

Поширені обхідні рішення (і чому вони не працюють)

Сортування за датою "Відправлення"

Найчастіше пропоноване обхідне рішення - змінити режим перегляду Outlook, щоб сортувати за датою "Відправлення" замість дати "Отримання". Хоча це змінює порядок відображення, це не виправляє базові дані. Дата "Отримання" залишається хибною у результатах пошуку, правилах, інструментах відповідності та будь-якій іншій функції, що посилається на часовий штамп отримання. І це обхідне рішення вимагає, щоб кожний користувач змінив свої налаштування на кожному пристрої.

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

Повторний імпорт листів не виправляє проблему дат. Другий імпорт додає ще один набір заголовків "Received" з новим часовим штампом, ускладнюючи ланцюжок заголовків без виправлення відображуваної дати. Повторний імпорт також може створити дублікати, якщо інструмент не обробляє дедуплікацію належним чином.

Використання іншого інструмента міграції

Перехід на сторонній інструмент (BitTitan MigrationWiz, 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, структури MIME multipart з вкладеними межами, варіації кодування та пошкоджені межі MIME. Власне, це набагато більше, ніж просте знайти-замінити у тексті заголовків.

Підключення до Exchange Online

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

Посібники за платформами

Поширені запитання

Чи це відома проблема у Microsoft?

Microsoft офіційно не документує цю проблему як відомий дефект імпорту IMAP Центру адміністрування Exchange. Запити до підтримки щодо цієї проблеми дат зазвичай отримують пропозиції обхідних рішень (сортувати за датою Відправлення), а не виправлення. Проблема є наслідком стандартної поведінки транспорту Exchange, а не помилкою у функції імпорту.

Чи може PowerShell виправити дати після імпорту?

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

Чи працює Redate.io з гібридними середовищами Exchange?

Так. Redate.io працює з будь-якою поштовою скринькою, що розміщена в Exchange Online, незалежно від того, чи організація використовує гібридну конфігурацію Exchange. Виправлення застосовується до скриньки Exchange Online і не потребує доступу до локальних серверів Exchange.

Імпорт IMAP Exchange зіпсував дати всіх листів? Запустіть безкоштовний аналіз з Redate.io, щоб визначити уражені листи у кожній скриньці та відновити правильні дати в Outlook, OWA та всіх підключених клієнтах.