IMAP INTERNALDATE 해설 - 날짜가 망가지는 이유

2 min

모든 이메일에 포함된 3개의 날짜

IMAP 서버에 저장된 모든 이메일은 최소 3개의 서로 다른 날짜 값을 가지고 있어요. 이 날짜들이 어떻게 작동하는지, 그리고 메일 클라이언트가 어느 것을 표시하는지 이해하는 것이 마이그레이션이 날짜를 망가뜨리는 이유를 이해하는 열쇠예요.

Date 헤더 (RFC 2822)

Date 헤더는 RFC 2822에 정의되어 있고 이메일 메시지 본문의 일부예요. 메시지가 작성되고 전송된 날짜와 시간을 기록해요.

Received 헤더

Received 헤더는 메시지가 배달 체인의 각 서버를 통과할 때 추가돼요. 가장 최근 Received 헤더(최상위)는 메시지가 마지막 서버에 도달한 날짜와 시간을 기록해요.

IMAP INTERNALDATE

INTERNALDATE는 IMAP 서버가 각 메시지에 대해 저장하는 메타데이터예요. 메시지 자체의 일부가 아니라, 서버가 메시지의 삽입 또는 수신 시간으로 기록하는 값이에요.

메일 클라이언트가 어떤 날짜를 표시할지 선택하는 방법

Outlook

Microsoft Outlook은 기본적으로 "받은 날짜" 열을 표시하고, 이것은 Received 헤더의 최신 타임스탬프나 INTERNALDATE에 기반해요.

Apple Mail

Apple Mail은 INTERNALDATE와 Received 헤더의 조합을 사용해요. Apple Mail 날짜 수정도 참고하세요.

Thunderbird

Thunderbird의 기본은 Date 헤더에 기반하므로, 마이그레이션 후에도 올바른 날짜를 표시할 수 있어요. Thunderbird 날짜 수정도 참고하세요.

Gmail (웹)

Gmail 웹 인터페이스는 주로 Date 헤더를 사용해요.

IMAP 마이그레이션 중 무슨 일이 일어나는가

IMAP APPEND 명령

마이그레이션 도구가 대상 서버에 메시지를 삽입할 때 IMAP APPEND 명령을 사용해요. 이 명령으로 INTERNALDATE를 지정할 수 있지만, 서버는 삽입 시 새 Received 헤더를 추가해요. 도구별 가이드는 BitTitan Outlook, CloudM Outlook, imapsync Outlook을 참고하세요.

연쇄 반응

결과적으로, 클라이언트가 Received 헤더를 사용하면(Outlook 등) 마이그레이션 날짜가 표시돼요. Date 헤더를 사용하면(Thunderbird 기본, Gmail 웹) 올바른 날짜가 표시돼요.

예방할 수 없는 이유

IMAP 프로토콜(RFC 3501)이 서버가 APPEND 시 Received 헤더를 추가하는 것을 허용(많은 구현에서는 요구)해요. 이것은 프로토콜 수준의 동작이에요. 예방은 불가능하지만, 사후 수정은 가능해요.

IMAP INTERNALDATE 문제를 수정하고 싶으세요? 무료 분석 시작해서 영향 범위를 확인하세요.