Nie wiem, co masz na myśli, mówiąc, że identyfikatory UID nie są unikalne w skrzynce pocztowej, tylko w podfolderach. Podfoldery, czy masz na myśli coś innego niż INBOX? W każdym razie to brzmi źle. Identyfikatory UID są w rzeczywistości unikalne w każdym folderze i nie ma znaczenia, że jest to INBOX lub jakikolwiek inny folder.
Co może się zdarzyć, że UID może zmienić między sesjami. Zasadniczo dzieje się tak, jeśli serwer IMAP traci indeksy i musi je odbudować lub jeśli poczta jest migrowana z jednego serwera IMAP na inny itp. Jeśli tak się stanie, to oczywiście stracisz wszystkie powiązania między wiadomościami e-mail a dodatkowymi danymi (notatki lub kontakty).
Możesz na tym polegać: UID nigdy nie będzie odnosił się nagle do innej wiadomości. Albo pozostanie ważny i będzie odnosił się do tego samego komunikatu, do którego zawsze się odnosił, albo stanie się nieważny.
Możesz sprawdzić, w jaki sposób dany serwer IMAP generuje i utrzymuje identyfikatory UID. Różne serwery IMAP składają różne obietnice dotyczące trwałości wartości UID. Nawet na jednym serwerze IMAP może się różnić w zależności od używanego formatu skrzynki pocztowej. Na przykład w Dovecot spodziewaj się mniej kruchych identyfikatorów UID w przypadku mdbox niż w przypadku mbox lub Maildir, ponieważ metadane są ściślej zintegrowane z rzeczywistymi wiadomościami e-mail z mdbox.
Sugeruję używanie identyfikatorów UID w odniesieniu do wiadomości na serwerze IMAP, Message-ID
jako kopii zapasowej. Message-ID
nie jest tak dobre, ponieważ możliwe są duplikaty i (w przypadku większości serwerów IMAP) wyszukiwanie Message-ID
może być wolniejsze, ale jest lepsze niż całkowite utratę wiadomości.