Кратко
- После явного включения UIDONLY запрещает порядковые номера сообщений и передаёт
UIDFETCHиVANISHEDс UID. Исчезает подвижная таблица соответствий, но не обязанность доказать состояние ящика. - Долговечная ссылка объединяет имя ящика,
UIDVALIDITYи UID. Объявление возможности, включение на соединении, завершение команды, запись кэша и сверка приложения — разные квитанции.
Если из начала большого почтового ящика удалить одно сообщение, порядковые номера всех последующих сдвинутся. Пока приходят новые события, клиенту приходится непрерывно сопоставлять меняющуюся позицию с более устойчивым UID. UIDONLY убирает именно эту работу: относительная позиция больше не участвует в командах над сообщениями.
Однако строка UIDONLY в CAPABILITY ещё не меняет сеанс. Клиент должен отправить ENABLE UIDONLY. Лишь после этого FETCH, STORE, SEARCH, COPY и MOVE без префикса UID становятся недопустимыми, а сервер отвечает UIDREQUIRED. Изменения атрибутов приходят как UIDFETCH, удаления — как VANISHED. Предложенная возможность и включённый режим являются разными фактами.
Польза упрощения реальна. Порядковый номер — всего лишь текущее место, которое перераспределяется после EXPUNGE. Отказ от него снижает риск применить задержавшийся ответ к неверному сообщению и освобождает клиент от постоянного обслуживания двух пространств имён.
Но оставшийся UID не является глобальным именем. RFC 9051 ограничивает его ящиком и поколением UIDVALIDITY. Если сервер не может сохранить прежнее пространство, поколение меняется, и старые UID утрачивают текущую силу. Поэтому одиночный UID в журнале аудита не задаёт полноценную ссылку.
UIDNEXT также не обещает следующий объект. Значение обозначает нижнюю границу будущих назначений, а не гарантирует сообщение с таким номером. Пробелы допустимы, сообщения могут быть удалены, а флаги — меняться при сохранении идентичности. Устойчивая ссылка и установившееся состояние — разные свойства.
UIDONLY не меняет EXISTS и RECENT. Он совместим с CONDSTORE и QRESYNC, а MODSEQ может приходить в UIDFETCH, но сам режим не требует этих механизмов синхронизации. Необязательное сопоставление по порядковым номерам в QRESYNC запрещено, чтобы не вернуть отброшенное пространство имён. Чистая адресация не создаёт полной истории.
COPY и MOVE показывают ту же границу. COPYUID может связать исходный UID с UID назначения и его UIDVALIDITY; тегированный результат подтверждает завершение команды IMAP. Он не доказывает, что индекс, архив, поиск или мобильный кэш надёжно принял новый объект. Нижележащий результат требует собственной квитанции.
Отвергнутая схема с нулём служит предупреждением. Ранний проект сохранял обычную форму FETCH, подставляя ноль на место порядкового номера. От неё отказались: старый клиент мог принять фиктивную позицию за настоящую и повредить кэш. Внешняя совместимость скрывала бы разрыв смысла, тогда как отдельная форма ответа делает смену полномочий заметной.
Рабочая цепочка доказательств должна соединять объявление возможности, её включение в конкретном соединении, ящик с данным UIDVALIDITY, наблюдавшиеся UID и изменения, тегированное завершение, долговечную локальную запись и сверку в потребляющем приложении. Один зелёный индикатор не может представлять всю цепь.
Источники
- https://www.rfc-editor.org/rfc/rfc9586.html
- https://www.rfc-editor.org/info/rfc9586
- https://datatracker.ietf.org/doc/rfc9586/
- https://datatracker.ietf.org/doc/draft-ietf-extra-imap-uidonly/
- https://www.rfc-editor.org/errata/rfc9586
- https://www.rfc-editor.org/rfc/rfc9051.html
- https://www.rfc-editor.org/rfc/rfc3501.html
- https://www.rfc-editor.org/rfc/rfc5161.html
- https://www.rfc-editor.org/rfc/rfc7162.html
- https://www.rfc-editor.org/rfc/rfc4315.html
- https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml
- https://www.iana.org/assignments/imap-response-codes/imap-response-codes.xhtml
- https://www.rfc-editor.org/rfc/rfc8174.html
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-why-btw-media-exists-and-why-reality-not-advocacy-is-the-product/
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров

