RFC: 2060
Оригинал: Internet Message Access Protocol v.4 rev.1
Другие версии: RFC 1730, RFC 3501
Категория: Предложенный стандарт
Дата публикации:
Автор:
Перевод: Николай Малых

6.3.1. Команда SELECT

Аргументы:имя почтового ящика
Отклик:ОБЯЗАТЕЛЬНО непомеченный отклик FLAGS, EXISTS, RECENT
ДОПОЛНИТЕЛЬНО OK непомеченный отклик UNSEEN, PERMANENTFLAGS
Результат:OK — выбор завершено, состояние selected
NO — отказ при выборе, состояние authenticated (нет почтового ящика или доступа к нему)
BAD — команда не поддерживается или некорректны аргументы

Команда SELECT выбирает почтовый ящик и обеспечивает доступ к хранящимся в нем сообщениям. До возврата клиенту отклика сервер ДОЛЖЕН передать клиенту следующие непомеченные данные для определения начального состояния почтового ящика:

FLAGSопределяет флаги почтового ящика (см. описание отклика FLAGS)
<n> EXISTSчисло сообщений в почтовом ящике (см. описание отклика EXISTS)
<n> RECENTчисло сообщений с установленным флагом \Recent (см. описание отклика RECENT)
OK [UIDVALIDITY <n>]уникальный идентификатор корректности (см. описание отклика UID)

Серверу следует также передать код UNSEEN в непомеченном отклике OK, показывающий порядковый номер первого непрочитанного сообщения в почтовом ящике.

Если клиенту не разрешается вносить постоянные изменения в те или иные флаги, указанные в непомеченном отклике FLAGS, серверу следует передать код PERMANENTFLAGS в непомеченном отклике OK, указывающий какие флаги клиент не может изменить.

В каждом соединении может быть выбран только один почтовый ящик и для работы с несколькими ящиками требуется соответствующее число соединений. При выборе нового почтового ящика команда SELECT автоматически отменяет текущий выбор. Следовательно, если выбран почтовый ящик, то после неудачного использования команды SELECT этот выбор будет отменен.

Если клиенту позволено изменять почтовый ящик, серверу следует перед текстом помеченного отклика OK помещать код [READ-WRITE]. Если клиенту не разрешено менять содержимое почтового ящика, но открыт доступ для чтения почты, почтовый ящик выбирается в режиме чтения (read-only) и сервер ДОЛЖЕН перед текстом отклика OK на команду SELECT поместить код [READ-ONLY]. Доступ для чтения по команде SELECT отличается от использования команды EXAMINE тем, что некоторые почтовые ящики read-only могут позволять изменение перманентного состояния отдельным пользователям (при наличии общего запрета. Новости, промаркированные в файле .newsrc на сервере, являются примером такой ситуации (некоторые пользователи могут менять состояние почтовых ящиков с атрибутом read-only).

Пример:  C: A142 SELECT INBOX
         S: * 172 EXISTS
         S: * 1 RECENT
         S: * OK [UNSEEN 12] Message 12 is first unseen
         S: * OK [UIDVALIDITY 3857529045] UIDs valid
         S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
         S: * OK [PERMANENTFLAGS (\Deleted \Seen \*)] Limited
         S: A142 OK [READ-WRITE] SELECT completed
2007 - 2017 © Русские переводы RFC, IETF, ISOC.