Назад | Перейти на главную страницу

Согласован ли номер сообщения, присвоенный сообщению командой IMAP «выбрать» или «изучить» во всех сеансах IMAP?

В основном будет ли сообщение номер один оставаться номером один в другом сеансе / местоположении IMAP?

UID останется неизменным навсегда, пока UIDVALIDITY не изменится (UIDVALIDITY меняется очень редко)

MSGNO (последовательность от 1 до «EXISTS») является локальным для этого конкретного соединения. Если ваш клиент открывает несколько соединений, MSGNO может фактически отличаться в каждом из них.

При этом MSGNO и UID всегда сортируются одинаково. Более высокий MSGNO всегда будет соответствовать более высокому UID.

Некоторые команды IMAP могут вызвать изменение MSGNO, но вы всегда будете видеть результат EXPUNGE, сообщающий вам, какой из них был удален - все более высокие числа уменьшаются на 1 в этот момент. Если будут добавлены новые сообщения, вы также получите обновленный EXISTS, чтобы узнать, сколько.

(все это меняется, если вы «ВКЛЮЧИТЕ QRESYNC» и сервер поддерживает его - но это правила базового IMAP).

Как отметил Янне в комментариях, RFC3501 содержит все кровавые подробности о том, каким командам разрешено изменять MSGNO, а каким нужно его сохранять, даже если некоторые MSGNO теперь указывают на удаленные сообщения.

Короче говоря, если вы взаимодействуете в разных сеансах или в разных соединениях в рамках одного сеанса, используйте варианты UID команд, и вы будете в безопасности.