En primer lugar, en IMAP, no hay ningún requisito que implique que FETCH BODYSTRUCTURE
habría transferido datos completos del mensaje con archivos adjuntos. O su suposición es incorrecta, o su biblioteca IMAP tiene un error grave, o está utilizando una función incorrecta aquí.
En segundo lugar, mencionó hacer un seguimiento de los UID, pero no dijo nada sobre UIDVALIDITY
. Leer RFC 3501
para entender lo que significa. No hay forma de implementar una aplicación que hable IMAP correctamente sin conocer el protocolo. También se proporcionan indicaciones adicionales en RFC 4549
.
Su tercera pregunta se trata de solicitar elementos eliminados o movidos. En IMAP de referencia, no puede hacer eso. La única forma de saber qué mensajes se han eliminado y cuáles son los recién llegados es rastrear los UID explícitamente, suponiendo que UIDVALIDITY
se le dio y no cambió, compara la lista de UID desde la última vez con lo que tiene ahora, y ve cuáles son nuevos y cuáles se han ido. Nuevamente, lea los RFC, contienen respuestas a todas sus preguntas, así como sugerencias sobre cómo optimizar el proceso de sincronización. También hay una tesis sobre IMAP
que entra en muchos más detalles sobre cómo mejorar aún más el chat de protocolo y qué extensiones son relevantes. Sin embargo, este no es un proyecto fácil.