Zunächst einmal gibt es in IMAP keine Anforderung, die FETCH BODYSTRUCTURE
implizieren würde müsste komplette Nachrichtendaten mit Anhängen übertragen. Entweder ist Ihre Annahme falsch, oder Ihre IMAP-Bibliothek hat einen schwerwiegenden Fehler, oder Sie verwenden hier eine falsche Funktion.
Zweitens haben Sie erwähnt, UIDs zu verfolgen, aber nichts über die UIDVALIDITY
gesagt . Lesen Sie RFC 3501
zu verstehen, was es bedeutet. Es gibt keine Möglichkeit, eine Anwendung zu implementieren, die IMAP korrekt spricht, ohne das Protokoll zu kennen. Weitere Hinweise finden sich auch in RFC 4549
.
Ihre dritte Frage betrifft die Frage nach gelöschten oder verschobenen Elementen. Im Basis-IMAP ist dies nicht möglich. Der einzige Weg, um zu wissen, welche Nachrichten gelöscht wurden und welche neu angekommen sind, besteht darin, die UIDs explizit zu verfolgen – vorausgesetzt, die UIDVALIDITY
vergeben wurde und sich nicht geändert hat, vergleichen Sie die Liste der UIDs seit dem letzten Mal mit denen, die Sie jetzt bekommen haben, und sehen, welche neu und welche weg sind. Lesen Sie erneut die RFCs, sie enthalten Antworten auf alle Ihre Fragen sowie Vorschläge zur Optimierung des Synchronisationsprozesses. Es gibt auch eine These über IMAP
der viel detaillierter darauf eingeht, wie der Protokoll-Chat weiter verbessert werden kann und welche Erweiterungen relevant sind. Dies ist jedoch kein einfaches Projekt.