Je ne sais pas ce que vous voulez dire lorsque vous dites que les UID ne sont pas uniques dans une boîte aux lettres, juste dans les sous-dossiers. Par sous-dossiers, voulez-vous dire autre chose que INBOX? En tout cas, ça sonne mal. Les UID sont en fait uniques dans chaque dossier et peu importe que ce soit INBOX ou tout autre dossier.
Ce qui peut arriver, c'est que les UID peuvent changer entre les sessions. Généralement, cela se produit si le serveur IMAP perd ses index et doit les reconstruire ou si le courrier est migré d'un serveur IMAP à un autre, etc. Si cela se produit, vous perdrez bien sûr toutes les associations entre les e-mails et les données supplémentaires (notes ou contacts).
Vous pouvez vous y fier: un UID ne fera jamais référence soudainement à un message différent. Soit il restera valide et fera référence au même message auquel il a toujours fait référence, soit il deviendra invalide.
Vous voudrez peut-être vérifier comment votre serveur IMAP particulier génère et gère les UID. Différents serveurs IMAP font des promesses différentes quant à la persistance des valeurs UID. Même au sein d'un serveur IMAP, il peut varier en fonction du format de boîte aux lettres utilisé. Par exemple, avec Dovecot, attendez-vous à des UID moins fragiles avec mdbox qu'avec mbox ou Maildir car les métadonnées sont plus étroitement intégrées aux e-mails réels avec mdbox.
Je suggère d'utiliser des UID pour faire référence aux messages sur le serveur IMAP, avec Message-ID
comme sauvegarde. Message-ID
n'est pas aussi bon car les doublons sont possibles et (pour la plupart des serveurs IMAP) la recherche Message-ID
peut être plus lente, mais c'est mieux que de perdre complètement la trace des messages.