97
клиент, и пользователь заходит на сервер, чтобы читать, сортировать и удалять
находящиеся на нем сообщения.
Набор команд, входящих в протокол IMAP, позволяет создавать в
почтовом ящике на сервере отдельные папки и раскладывать в них пришедшие
сообщения. При использовании IMAP для каждого сообщения, находящегося в
почтовом ящике, почтовый сервер сохраняет различную информацию,
например
, о том, читал ли данное письмо пользователь, был ли написан ответ
на него или, наоборот, письмо создается пользователем и подлежит отправке.
Имеется специальная команда, позволяющая искать в почтовом ящике
сообщения, удовлетворяющие заданным критериям.
Хранящиеся на IMAP-сервере сообщения, могут быть помечены
следующими флагами: отвечено, выделено, удалено, прочитано, черновик,
новое.
Взаимодействие почтового
клиента и IMAP-сервера осуществляется так
же, как и работа с POP3-сервером — путем обмена текстовыми строками с
запросами и ответами. Интересная особенность протокола IMAP заключается в
том, что клиент не обязан дожидаться ответа от сервера, прежде чем отправить
следующий запрос. Эта возможность позволяет запускать трудоемкие задачи на
сервере (например, поиск писем), параллельно продолжая
просматривать
сообщения.
Каждый запрос клиента начинается с уникальной метки (обычно строки
вида a001, a002 и т.д.). Ответы сервера, указывающие на завершение
выполнения запроса, начинаются с той метки, с которой начинался запрос.
Остальные строки ответов (данные, передаваемые клиенту и служебные строки
ответов, кроме последней) начинаются со служебной метки ‘*’. За меткой в
ответе
следует одна из трех строк: ‘OK’ — успешное выполнение запроса, ‘NO’
— запрос выполнен не был, ‘BAD’ — синтаксическая ошибка в запросе.
В таблице 10.3 приведена типовая последовательность обмена запросами
и ответами во время сеанса связи по протоколу IMAP4.