IMAP 마이그레이션 후 이메일 날짜가 바뀌는 이유

7 min

모든 이메일이 같은 날짜를 표시하는 문제

IMAP 마이그레이션 후, 사용자가 메일함을 열면 놀라운 광경이 펼쳐져요. 모든 이메일이 정확히 같은 날짜를 표시하고 있거든요. 원래의 발송일이나 수신일 대신, 마이그레이션이 실행된 날짜가 모든 메시지에 표시돼요. 수년간의 커뮤니케이션이 마치 같은 날 도착한 것처럼 보이게 됩니다.

IT 관리자에게는 악몽이에요. 지원 티켓이 쏟아지고, 사용자는 날짜로 아무것도 찾을 수 없고, 메일함의 시간순 기록이 사실상 파괴됩니다.

Outlook에서의 표시

Microsoft Outlook에서는 "받은 날짜" 열이 모든 이메일에 마이그레이션 날짜를 표시해요. 2018년에 보낸 메시지든 2023년 메시지든, Outlook은 같은 날짜, 즉 마이그레이션 도구가 메일함을 처리한 날을 보여줘요. 받은편지함, 보낸편지함, 모든 폴더가 영향을 받아요. 날짜순 정렬에 의존하는 사용자의 워크플로가 완전히 망가집니다.

Apple Mail에서의 표시

macOS와 iOS의 Apple Mail도 비슷하게 동작해요. 각 메시지 옆에 표시되는 날짜가 원래 날짜가 아닌 마이그레이션 타임스탬프를 반영합니다. Apple Mail은 IMAP 서버 메타데이터를 사용해서 표시 날짜를 결정하기 때문에, 같은 근본 원인이 같은 가시적 결과를 만들어내요. 받은편지함을 스크롤하면 동일한 날짜의 벽만 보입니다.

Gmail(웹 인터페이스)에서의 표시

Gmail 웹 인터페이스는 약간 다른 상황을 보여줘요. Gmail 웹 클라이언트는 이메일의 Date 헤더를 사용하기 때문에, 메시지가 올바른 날짜로 표시될 수 있어요. 하지만 IMAP INTERNALDATE는 여전히 잘못된 상태이고, 해당 Gmail 계정에 접속하는 IMAP 클라이언트(Outlook, Thunderbird, Apple Mail)는 마이그레이션 날짜를 표시해요. 같은 메일함이 한 클라이언트에서는 올바르게 보이고 다른 클라이언트에서는 잘못 보이는 거예요. 상당히 혼란스러운 상황이죠.

왜 발생하는가 - 기술적 원인

근본 원인은 IMAP 마이그레이션 도구가 이메일 헤더를 어떻게 처리하는지, 그리고 메일 클라이언트가 어떤 날짜를 표시할지 어떻게 결정하는지에 있어요. 이것을 이해하려면 IMAP 프로토콜과 헤더 구조에 대해 간단히 살펴볼 필요가 있어요.

IMAP 마이그레이션 도구가 헤더를 처리하는 방식

이메일이 한 서버에서 다른 서버로 마이그레이션될 때, 마이그레이션 도구는 소스 서버에서 원본 메시지를 다운로드하고 IMAP APPEND 명령으로 대상 서버에 업로드해요. 이 과정에서 IMAP 프로토콜은 대상 서버에 Received 헤더 추가를 요구합니다. 이 헤더에는 메시지가 새 서버에 삽입된 시간, 즉 마이그레이션 날짜의 타임스탬프가 포함돼요.

모든 것을 망가뜨리는 Received 헤더

이메일 메시지에는 일반적으로 여러 개의 Received 헤더가 포함되어 있고, 원래 배달 시 메시지를 처리한 각 메일 서버가 추가한 것이에요. 사실, Outlook 같은 클라이언트는 체인 최상단의 가장 최근 Received 헤더를 읽어서 "받은 날짜"를 결정해요. 마이그레이션 도구가 마이그레이션 타임스탬프가 있는 새 Received 헤더를 추가하면, 그것이 가장 최근 것이 되고, 메일 클라이언트는 원래 날짜 대신 그 날짜를 표시합니다.

이것은 마이그레이션 도구나 메일 클라이언트의 버그가 아니에요. 둘 다 IMAP과 이메일 표준을 올바르게 따르고 있어요. 문제는 이 표준들이 대량 마이그레이션을 고려해서 설계되지 않았다는 데 있고, IMAP APPEND와 날짜 표시 로직의 상호작용이 이런 원치 않는 결과를 만들어내는 거예요.

INTERNALDATE vs Date 헤더

IMAP 서버는 각 메시지에 대해 2개의 다른 날짜 값을 저장해요. Date 헤더는 이메일 메시지 자체의 일부로, 메시지가 처음 작성되고 전송된 날짜를 기록합니다. INTERNALDATE는 IMAP 서버가 저장하는 메타데이터로, 메시지가 해당 특정 서버에 배달되거나 삽입된 시간을 나타내요.

일부 마이그레이션 도구는 APPEND 명령 중에 INTERNALDATE를 설정해서 원래 INTERNALDATE를 보존하려고 해요. 하지만 INTERNALDATE가 올바르게 설정되더라도, 추가된 Received 헤더는 Received 날짜를 INTERNALDATE보다 우선시하는 클라이언트에서 여전히 문제를 일으켜요.

어떤 마이그레이션 도구가 이 문제를 일으키나요?

거의 모든 IMAP 마이그레이션 도구가 이 문제를 일으킬 수 있어요. 문제는 특정 도구가 아니라 IMAP 프로토콜에 내재된 것이에요. 다만 널리 사용되기 때문에 이 문제와 특히 많이 연관되는 도구들이 있어요.

BitTitan MigrationWiz

BitTitan MigrationWiz는 MSP와 IT 컨설턴트가 사용하는 가장 인기 있는 상용 마이그레이션 도구 중 하나예요. MigrationWiz는 마이그레이션 과정에서 "mx.migrationwiz.com"을 포함하는 Received 헤더를 추가해요. 이 헤더가 체인에서 가장 최근이 되면서, Outlook과 기타 IMAP 클라이언트에서 마이그레이션 날짜가 표시되는 원인이 돼요. 자세한 가이드는 Outlook에서 BitTitan 날짜 수정, Microsoft 365, Google Workspace, Exchange Online을 참고하세요.

CloudM Migrate

CloudM Migrate(구 Cloud Migrator)는 Google Workspace 마이그레이션에 널리 사용돼요. 다른 도구와 마찬가지로 CloudM도 IMAP 삽입 시 자체 Received 헤더를 추가해요. CloudM으로 마이그레이션된 이메일은 Received 헤더에 의존하는 클라이언트에서 마이그레이션 날짜를 표시합니다. 가이드는 Gmail에서 CloudM 날짜 수정, Outlook, Google Workspace, Microsoft 365를 참고하세요.

imapsync

imapsync는 Linux 관리자와 호스팅 업체에서 인기 있는 오픈소스 도구예요. imapsync는 INTERNALDATE를 보존하려고 하지만, 대상 서버는 APPEND 작업 시 Received 헤더를 추가해요. imapsync FAQ는 이 제한을 인정하지만 마이그레이션 후 추가된 헤더를 제거하는 내장 솔루션을 제공하지 않아요. 가이드는 Outlook에서 imapsync 날짜 수정, Gmail, Microsoft 365, Google Workspace를 참고하세요.

GSMMO (Google Workspace Migration)

Google Workspace Migration for Microsoft Outlook(GSMMO)은 Exchange나 Outlook PST 파일에서 Google Workspace로의 마이그레이션을 위해 Google이 제공하는 자체 도구예요. GSMMO도 같은 날짜 문제를 일으킬 수 있으며, 특히 마이그레이션에 중간 IMAP 단계가 포함된 경우에 발생해요. 가이드는 Outlook에서 GSMMO 날짜 수정, Gmail, Apple Mail을 참고하세요.

Exchange 관리 센터 (네이티브 IMAP 가져오기)

Microsoft의 Exchange 관리 센터에는 Exchange Online(Microsoft 365)으로 마이그레이션하기 위한 네이티브 IMAP 가져오기 기능이 포함되어 있어요. 이 내장 마이그레이션 도구도 가져오기 중에 Received 헤더를 추가해서 같은 날짜 표시 문제를 일으켜요. 가이드는 Outlook에서 Exchange IMAP 가져오기 날짜 수정, OWA를 참고하세요.

수동 IMAP 복사

Thunderbird 같은 클라이언트를 사용해서 IMAP 서버 간에 이메일을 수동으로 복사하는 경우에도 이 날짜 문제가 발생할 수 있어요. 메일 클라이언트가 IMAP을 통해 메시지를 복사하면, 대상 서버는 이것을 새 삽입으로 처리하고 현재 타임스탬프로 자체 Received 헤더를 추가해요. 가이드는 Outlook에서 수동 IMAP 복사 날짜 수정, Gmail, Thunderbird, Apple Mail을 참고하세요.

일반적인 해결 방법이 효과 없는 이유

이 문제에 직면하면, 사용자와 관리자는 보통 어떤 것도 실제로 문제를 해결하지 못한다는 것을 깨닫기 전에 여러 접근법을 시도해요.

"보낸 날짜로 정렬"이 불충분한 이유

가장 흔한 제안은 메일 클라이언트에서 "받은" 날짜 정렬을 "보낸" 날짜로 바꾸는 거예요. 표시 순서는 변경되지만 근본적인 데이터는 수정되지 않아요. 검색 결과는 여전히 잘못된 날짜를 표시해요. 캘린더 연동, 컴플라이언스 도구, 받은 날짜에 의존하는 자동화 워크플로는 계속 오작동하고요. 그리고 사용자는 모든 기기, 모든 폴더에서 이 설정을 변경하는 것을 기억해야 해요.

재마이그레이션 - 비용이 높고 위험

일부 관리자는 두 번째 시도에서 날짜 문제를 피할 수 있기를 바라며 마이그레이션을 다시 하는 것을 고려해요. 이 접근법은 비용이 높고(메일함 수에 따라 500~5000 EUR), 시간이 걸리며, 위험해요. 두 번째 마이그레이션에서도 같은 Received 헤더 문제가 발생하고, 데이터 손실 위험이 두 배가 되며, 상당한 다운타임이 필요해요. 마이그레이션 도구 자체가 근본적으로 변경되지 않는 한 재마이그레이션으로는 날짜 문제를 해결할 수 없어요.

수동 헤더 편집에는 서버 접근이 필요

기술적으로 수정은 각 이메일에서 마이그레이션 Received 헤더를 제거하는 작업을 포함해요. 하지만 수동으로 하려면 서버에 대한 직접 접근, 이메일 헤더 구조에 대한 지식, 맞춤형 스크립팅이 필요해요. 10,000통의 메일함에서 수동 편집은 비현실적이고 위험할 정도로 오류가 발생하기 쉬워요. S/MIME 서명 이메일, PGP 암호화 메시지, 중첩된 MIME 경계가 있는 멀티파트 구조, Content-Transfer-Encoding 문제, 비ASCII 헤더(RFC 2047), 대용량 첨부파일, 각각이 기본적인 스크립트에서 돌이킬 수 없는 데이터 손상을 일으킬 수 있어요. 10,000통의 수정된 이메일이 모두 무사한지 어떻게 확인할 수 있을까요? 전용 검증 시스템 없이는 확인할 수 없어요.

실제 해결책 - 원래 날짜 복원

올바른 접근법은 각 이메일의 헤더 체인에서 마이그레이션 아티팩트를 식별하고, 모든 메일 클라이언트에서 원래의 시간순 순서를 복원하는 대상 수정을 적용하는 거예요. 단순한 헤더 편집이 아니에요. 이 프로세스에는 RFC 준수 검증, 메시지 구조 보존, 알려진 도구 프로필 데이터베이스의 마이그레이션 시그니처 매칭이 포함돼요.

리데이트(Redate.io)의 수정 방법

Redate.io는 메일함(Google Workspace, Microsoft 365, 또는 모든 IMAP 서버)에 연결해서 각 이메일을 분석하여 마이그레이션 헤더의 영향을 받은 메시지를 식별해요. 분석은 무료이고, 결제 전에 정확히 몇 통의 이메일이 영향을 받았는지 보여줘요.

영향을 받은 각 이메일에 대해, Redate.io의 독자적 수정 엔진이 메시지를 다단계 분석 파이프라인으로 처리해요. 엔진은 대량의 실제 이메일 데이터 처리로 구축된 수백 개의 알려진 마이그레이션 도구 프로필에 대해 시그니처 매칭을 적용해요. 인코딩 문제, 멀티파트 구조, 인라인 첨부파일, DIY 스크립트가 데이터를 손상시킬 수 있는 수십 가지 엣지 케이스를 처리해요(월요일 아침에 발견하고 싶지 않은 종류의 것들이죠). 수정된 각 이메일은 확정 전에 무결성 검증을 받아요. 원본 메시지는 "Redate.io - Originals"라는 가시적 폴더로 이동(삭제가 아닌)되고 30일간 보존돼요.

그 결과? 이메일이 모든 클라이언트에서 정확한 원래 날짜를 표시해요. 정렬이 다시 작동하고요. 메일함의 시간순 기록이 복원됩니다.

자주 묻는 질문

마이그레이션 후 몇 달이 지나도 날짜를 수정할 수 있나요?

네. 원래의 Date 헤더는 마이그레이션이 언제 수행되었는지에 관계없이 이메일 메시지 내에 보존되어 있어요. Redate.io는 마이그레이션 후 몇 주, 몇 달, 심지어 몇 년 후에도 이메일 날짜를 수정할 수 있어요. 원래 이메일 헤더가 손상되지 않은 한 수정이 가능해요.

날짜 수정이 이메일을 삭제하나요?

아니요. Redate.io는 이메일을 삭제하지 않아요. 원본 메시지는 메일함 내의 "Redate.io - Originals"라는 가시적 폴더로 이동되어 30일간 접근 가능한 상태로 유지돼요. 수정된 각 이메일은 프로세스 확정 전에 원본과 대조하여 검증돼요. 특정 메시지의 검증이 실패하면, 원본은 그대로 유지돼요.

공유 메일함에서도 작동하나요?

네. Redate.io는 Google Workspace와 Microsoft 365의 공유 메일함에서 작동해요. 공유 메일함의 경우 연결 승인을 위해 관리자 수준의 접근이 필요해요. 프로세스는 개인 메일함과 동일해요. 분석, 수정, 검증 순서로 진행돼요.

올바른 날짜를 복원할 준비가 되셨나요? 무료 분석 시작해서 각 메일함에서 몇 통의 이메일이 영향을 받았는지 확인하세요.