내부 웹 메일 시스템에서는 메모와 연락처를 특정 메일에 첨부하고 싶습니다. 이를 위해서는 IMAP 서버의 모든 메일을 추적해야합니다.
안타깝게도 IMAP 표준은 메일 함 (하위 폴더에만 있음)에서 메일 UID의 고유성을 강제하지 않습니다. 진정으로 고유 한 UID를 생성하는 도구 / IMAP 서버가 있습니까? 아니면 각 메일을 식별 할 수있는 다른 방법이 있습니까? 합니다 ( 메시지 ID의 일부 메일 같은 필드를 포함하지 않는 헤더 필드는 고유하지 않습니다).
추가 자료 :
IMAP 프로토콜의 고유 ID-Limilabs.com
답변
튜플 (폴더 이름, 폴더 UIDVALIDITY, 메시지 UID)은 IMAP 계정에서 다른 모든 것과 메시지를 구별합니다. 지정된 메시지에 대해 해당 튜플은 세션간에 변경 될 수 있으므로이 경우 Message-ID를 백업으로 추적 할 수 있습니다.
예, 정말 성가신 일입니다.
답변
UID가 사서함에서 고유하지 않고 하위 폴더에서만 말할 때 무슨 의미인지 모르겠습니다. 하위 폴더 란, INBOX 이외의 다른 의미가 있습니까? 어쨌든, 그것은 잘못 들립니다. UID는 실제로 각 폴더 내에서 고유하며 INBOX 또는 다른 폴더인지는 중요하지 않습니다.
무엇 있습니다 발생하는 UID를이 세션 사이에 변경할 수 있다는 것입니다. 일반적으로 이것은 IMAP 서버가 색인을 잃어 색인을 다시 작성해야하거나 메일이 하나의 IMAP 서버에서 다른 IMAP 서버로 마이그레이션되는 경우 등에 발생합니다.이 경우 전자 메일과 추가 데이터 간의 모든 연결이 손실됩니다. (메모 또는 연락처).
이것에 의존 할 수 있습니다. UID는 갑자기 다른 메시지를 참조하지 않습니다. 유효 상태로 유지되며 항상 참조한 것과 동일한 메시지를 참조하거나 유효하지 않게됩니다.
특정 IMAP 서버가 UID를 생성하고 유지 관리하는 방법을 확인하고자 할 수 있습니다. 다른 IMAP 서버는 UID 값의 지속성에 대해 다른 약속을합니다. 하나의 IMAP 서버 내에서도 사용중인 사서함 형식에 따라 달라질 수 있습니다. 예를 들어 Dovecot를 사용하면 메타 데이터가 mdbox를 사용하는 실제 전자 메일과 더 밀접하게 통합되므로 mbox 또는 Maildir보다 mdbox를 사용하는 취약한 UID가 줄어 듭니다.
UID를 사용하여 Message-ID
백업 과 함께 IMAP 서버의 메시지를 참조하는 것이 좋습니다 . Message-ID
중복이 가능하고 (대부분의 IMAP 서버의 경우) 검색 Message-ID
속도가 느려질 수 있지만 메시지 추적을 완전히 잃는 것보다 낫습니다.