6.4.8. Команда UID
Аргументы: | имя команды, аргументы команды |
Отклик: | непомеченный отклик FETCH, SEARCH |
Результат: | OK — успешное завершение NO — ошибка BAD — команда не поддерживается или некорректны аргументы |
Команда UID имеет две формы. В первом варианте используются команды COPY, FETCH, STORE и аргументы соответствующей команды. Однако в качестве номеров при указании набора сообщений используются уникальные идентификаторы сообщений, а не их порядковые номера. Во второй форме команда UID использует команду SEARCH и ее набор аргументов. Интерпретация аргументов такая же, как для команды SEARCH, однако вместо порядковых номеров сообщений возвращаются их уникальные идентификаторы (UID). Например, команда UID SEARCH 1:100 UID 443:557 будет возвращать уникальные идентификаторы, соответствующие пересечению сообщений с порядковыми номерами от 1 до 100 и UID в диапазоне 443:557.
Допустимо включение диапазона сообщений, однако не гарантируется, что уникальные идентификаторы для диапазона образуют непрерывную последовательность. Несуществующие уникальные идентификаторы в заданном диапазоне будут игнорироваться без генерации сообщений об ошибках.
Число после "*" в непомеченном отклике FETCH всегда указывает порядковый номер сообщения, а не его уникальный идентификатор (даже в откликах на команду UID). Однако серверы ДОЛЖНЫ явно включать значения UID как часть откликов FETCH на команду UID, независимо от указания UID в качестве элемента данных для FETCH.
Пример: C: A999 UID FETCH 4827313:4828442 FLAGS S: * 23 FETCH (FLAGS (\Seen) UID 4827313) S: * 24 FETCH (FLAGS (\Seen) UID 4827943) S: * 25 FETCH (FLAGS (\Seen) UID 4828442) S: A999 UID FETCH completed