No sé a qué te refieres cuando dices que los UID no son únicos en un buzón, solo en subcarpetas. Por subcarpetas, ¿quiere decir algo más que INBOX? En cualquier caso, suena mal. De hecho, los UID son únicos dentro de cada carpeta y no importa si es INBOX o cualquier otra carpeta.
Lo que puede suceder es que los UID pueden cambiar entre sesiones. En general, esto sucede si el servidor IMAP pierde sus índices y tiene que reconstruirlos o si el correo se migra de un servidor IMAP a otro, etc. Si esto sucede, por supuesto, perderá todas las asociaciones entre correos electrónicos y datos adicionales. (notas o contactos).
Puede confiar en esto: un UID nunca se referirá repentinamente a un mensaje diferente. O seguirá siendo válido y hará referencia al mismo mensaje al que siempre se refirió, o de lo contrario dejará de ser válido.
Es posible que desee comprobar cómo su servidor IMAP particular genera y mantiene los UID. Diferentes servidores IMAP hacen diferentes promesas sobre la persistencia de los valores de UID. Incluso dentro de un servidor IMAP, puede variar según el formato de buzón en uso. Por ejemplo, con Dovecot, espere UID menos frágiles con mdbox que con mbox o Maildir porque los metadatos están más estrechamente integrados con los correos electrónicos reales con mdbox.
Sugiero usar UID para referirse a los mensajes en el servidor IMAP, con Message-ID
una copia de seguridad. Message-ID
no es tan bueno porque los duplicados son posibles y (para la mayoría de los servidores IMAP) la búsqueda Message-ID
puede ser más lenta, pero es mejor que perder el rastro de los mensajes por completo.