Каждому сообщению IMAP присваивается идентификатор UID, который является специфическим для пользователя , так как у двух пользователей могут быть два разных сообщения, но им назначается одинаковый UID. [aka UID! = UUID] Если ваше программное обеспечение выдает простой FETCH 1:* (FLAGS)
, сервер будет отвечать порядковым номером , не учитывая UID сообщения. Любая команда, в которой вы хотите работать с UID сообщения, должна быть уверена, что вы ее правильно выдаете, как в FETCH UID 1:* (FLAGS)
.
например:
a1 fetch 1:* (flags)
* 1 FETCH (FLAGS (\Seen))
* 2 FETCH (FLAGS (\Seen))
* 3 FETCH (FLAGS (\Seen))
* 4 FETCH (FLAGS (\Seen))
* 5 FETCH (FLAGS (\Answered \Seen))
* 6 FETCH (FLAGS (\Seen))
* 7 FETCH (FLAGS (\Seen))
* 8 FETCH (FLAGS (\Seen))
* 9 FETCH (FLAGS (\Seen))
* 10 FETCH (FLAGS (\Seen))
против:
a8 uid fetch 1:* (flags)
* 1 FETCH (UID 1 FLAGS (\Seen))
* 2 FETCH (UID 2 FLAGS (\Seen))
* 3 FETCH (UID 3 FLAGS (\Seen))
* 4 FETCH (UID 4 FLAGS (\Seen))
* 5 FETCH (UID 5 FLAGS (\Answered \Seen))
* 6 FETCH (UID 6 FLAGS (\Seen))
* 7 FETCH (UID 8 FLAGS (\Seen))
* 8 FETCH (UID 9 FLAGS (\Seen))
* 9 FETCH (UID 10 FLAGS (\Seen))
* 10 FETCH (UID 11 FLAGS (\Seen))
То есть, я не понимаю, почему вы должны отслеживать UIDs отдельно для синхронизации между несколькими устройствами. Пока каждое устройство собирает свою информацию с сервера IMAP, они будут синхронизироваться по умолчанию. Вы по существу перепрофилируете функциональность, которая уже существует на любом сервере IMAP.
Что случилось с IMAP? Вероятно, вам захочется быть совместимым с ним. – 84104