En nuestro sistema de correo web interno, nos gustaría adjuntar notas y contactos a ciertos correos. Para hacer esto, tenemos que hacer un seguimiento de cada correo en nuestro servidor IMAP.
Desafortunadamente, el estándar IMAP no impone la unicidad del UID de un correo en un buzón (solo en subcarpetas). ¿Existe alguna herramienta / servidor IMAP que genere UID que sean verdaderamente únicos? ¿O hay alguna otra forma de identificar cada correo? (el campo de encabezado de ID de mensaje no es único ya que algunos correos no contienen dicho campo).
Recursos adicionales: ID única en el protocolo IMAP - Limilabs.com
Respuestas:
Una tupla de (nombre de carpeta, ID de carpeta, ID de mensaje) distingue un mensaje de todos los demás en una cuenta IMAP. Para cualquier mensaje dado, esa tupla puede cambiar entre sesiones, por lo que es posible que desee realizar un seguimiento de su ID de mensaje como copia de seguridad en caso de que esto suceda.
Sí, realmente es tan molesto.
fuente
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úsquedaMessage-ID
puede ser más lenta, pero es mejor que perder el rastro de los mensajes por completo.fuente