На първо място, в IMAP няма изискване, което да означава, че FETCH BODYSTRUCTURE
ще прехвърли пълните данни за съобщението с прикачени файлове. Или вашето предположение е грешно, или вашата IMAP библиотека има сериозна грешка, или използвате грешна функция тук.
Второ, споменахте проследяването на UID, но не казахте нищо за UIDVALIDITY
. Прочетете RFC 3501
за да разбере какво означава. Няма начин да внедрите приложение, което говори IMAP правилно, без да познавате протокола. Допълнителни указания също са дадени в RFC 4549
.
Третият ви въпрос е относно искането за изтрити или преместени елементи. В базовия IMAP не можете да направите това. Единственият начин да разберете кои съобщения са изтрити и кои са новите е да проследите изрично UID - като приемете UIDVALIDITY
беше даден и не се промени, вие сравнявате списъка с UID от последния път с това, което сте получили сега, и виждате кои са нови и кои са изчезнали. Отново прочетете RFC, те съдържат отговори на всички ваши въпроси, както и предложения как да оптимизирате процеса на синхронизация. Има и теза за IMAP
който разглежда много по-подробно как да подобрим допълнително протоколния чат и какви разширения са подходящи. Това обаче не е лесен проект.