Просто я смутно представляю себе тонкости этой функции: что с чем синхронизируется, что приоритетно и т.д.
Спасибо

Некоторые особенности протокола IMAP:
1. Письма хранятся на сервере. Клиентская программа может держать у себя копии некоторых писем.
2. Возможна работа нескольких пользователей с одним и тем же почтовым ящиком - как поочерёдно, так и одновременно.
3. Возможна работа в почтовой программе в автономном режиме (без подключения к серверу).

Следствия: между двумя сеансами связи программы с сервером возможны изменения в составе писем в папках как на стороне клиента, так и на сервере. Поэтому после установления связи с сервером необходима синхронизация состояния почты.
А что могло произойти с почтой?
1. На сервере появилось письмо, которого раньше не было.
2. С сервера исчезло письмо, которое раньше там было.
3. На сервере существовавшее ранее письмо было скопировано или перемещено в какую-то папку.
4. На сервере изменились атрибуты письма.
5. В программе было удалено письмо.
6. В программе существовавшее ранее письмо было скопировано или перемещено в какую-то папку.
7. В программе изменились атрибуты письма.
Приоритет при синхронизации - за той стороной, где произошло изменение в состоянии конкретного письма.
Коллизии возможны, в общем-то, только при копировании/перемещении между папками. Но в IMAP на самом деле письма хранятся не разложенными по папкам, а одной большим линейным списком. Принадлежность же письма к той или иной папке задаётся тегом. Причём таких тегов у письма одновременно может быть несколько (с точки зрения пользователя - одно и то же письмо находится в нескольких папках сразу). Т.е., проблема коллизий на самом деле решается элементарно.

Спасибо! Развёрнуто... :beer: