Вы ошибаетесь в государственной машине RFC3501, как сказал Макс. Вы не можете «закончить», уже выбранный в любой почтовый ящик. Если бы что-то подобное произошло, прокси-сервер IMAP был бы безнадежно сломан и не было бы разумного способа его использования.
См. IMAP state machine from RFC3501. В рамках протокола IMAP после установления соединения состояние может быть только когда-либо одним из «аутентифицированных», «не прошедших проверку подлинности» и «выхода из системы». Невозможно сразу ввести выбранное состояние.
Если вы добавите «IMAP-прокси» к изображению, то он не может кэшировать IMAP-соединения таким образом или вы не можете разговаривать с IMAP своим прокси-сервером. Несмотря на то, что IMAP может быть легко использован в качестве протокола, который вы можете использовать здесь, то есть с помощью нескольких расширений для выполнения именно того, что вы хотели бы сделать, это не будет IMAP, как определено RFC3501.
Теперь, безусловно, возможно иметь прокси-сервер перед вашими серверами IMAP, которые могли бы помочь, например. Накладные расходы TLS. Однако, если это ваша настройка, ваш прокси-сервер IMAP должен убедиться, что почтовый ящик не выбран во время повторного использования соединения. Вам также придется изобретать некоторый метод повторной проверки подлинности, но теперь это вне сферы действия.
Для получения более подробной информации о том, почему она разработана таким образом, обязательно прочтите how the SELECT
command works. В IMAP определенные данные почтовых ящиков передаются во время обработки SELECT
, и эти данные очень важны для обеспечения того, чтобы и клиент, и сервер совместно использовали хорошо синхронизированное представление состояния почтового ящика. Если ваш клиент внезапно перешел в выбранное состояние, вам придется получить эти метаданные каким-либо другим способом (и обратите внимание, что этот «другой способ» явно запрещен, то есть вы should not issue STATUS
on the currently selected mailbox. С достаточно современным сервером IMAP, то есть с поддержкой CONDSTORE
или QRESYNC
расширения, требования еще более важны.
в общем, протокол IMAP делает не выгоду от прокси в пути большинство людей ожидают, что делать. Если вы на самом деле нужно использовать один, возможно, вы можете поделиться больше информации о том, что приводит вас к такому выводу.
Я не верю. IMAP имеет строго определенный конечный автомат, и клиенту необходимо отслеживать состояние. Переход от NON-AUTHENTICA TED для SELECTED - это неверный переход состояния. – Max