Gmail POP3 с командной строкой openssl: зависает во время RETR-инга

Вопрос или проблема

Я хочу использовать openssl s_client для доступа к серверу Gmail POP3S. Я делаю следующее:

$ openssl s_client -connect pop.gmail.com:995
+OK Gpop готов к запросам от <удалено: ip> d11pf35377217wam.36
USER <удалено: [email protected]>
+OK отправьте PASS
PASS <удалено: пароль>
+OK Добро пожаловать.
LIST
+OK 1 сообщение (2197 байт)
1 2197
.
STAT
+OK 1 2197
RETR 1
RENKVOTING

Проблема в том, что я никогда не могу выполнить команду RETR. Она всегда зависает, когда “RENKVOTING”.

Что я упускаю?

У меня была аналогичная проблема при тестировании SSL-соединения с SMTP-сервером GMail.

Команды AUTH и MAIL FROM работали нормально, но когда я попробовал RCPT TO, сервер вернул ответ RENKVOTING.

После того, как я довольно долго искал, я наконец нашел сайт, который объяснял, что происходит.

По всей видимости, заглавная буква R в начале команды (RCPT TO для SMTP и RETR для POP3) заставляет инструмент s_client произвести повторнуюNegotiation с сервером.

В странице man для s_client есть информация в разделе “CONNECTED COMMANDS”.

Мне удалось запустить мой тест SMTP, используя команды в нижнем регистре (rcpt to). Я только что попробовал тест с POP3-сервером GMail, и использование retr 1 работает хорошо.

Ответ или решение

Проблема, с которой вы столкнулись при использовании команды openssl s_client для доступа к серверу POP3S Gmail, связана с регистром символов, который вы используете в командах. Давайте внимательно разберем ваши шаги и найдем решение.

Исходная Проблема

При выполнении команды RETR 1 вы заметили, что соединение «зависает» с ответом «RENEGOTIATING», что говорит о том, что сервер пытается выполнить повторную onderhandelen SSL. Это происходит потому, что сервер POP3 обрабатывает команды в определенном регистре, и использование заглавных букв может влиять на это. Судя по предоставленной информации, команды, которые вы выполняете, должны быть в нижнем регистре.

Разбор

Вы правильно выполнили первичные шаги для подключения к серверу:

$ openssl s_client -connect pop.gmail.com:995

Затем вы успешно авторизовались:

USER <ваш email>
PASS <ваш пароль>

После этого вы запросили список сообщений с помощью команды LIST, и всё прошло успешно:

LIST
+OK 1 messages (2197 bytes)
1 2197

Однако, при вызове команды RETR 1 возникла проблема.

Решение Проблемы

Как вы уже обнаружили, использование символов в верхнем регистре может привести к нежелательным последствиям. Поэтому вам следует попробовать выполнить команду retr 1 в нижнем регистре:

retr 1

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

Подводя Итоги

Чтобы устранить проблему с зависанием при выполнении команды RETR с использованием openssl s_client, используйте следующие рекомендации:

  1. Используйте команды в нижнем регистре. Например: retr 1 вместо RETR 1.
  2. Проверяйте, что команды отправляются без лишних символов. Например, убедитесь, что вы не добавили дополнительные пробелы.
  3. Будьте внимательны к сообщениям от сервера. Ответы сервера могут дать представление о том, как он обрабатывает ваши запросы.

Следуя этим рекомендациям, вы должны успешно выполнять команды без возникновения проблемы с «RENEGOTIATING». Если же проблема всё еще проявляется, рекомендуется проверить дополнительную информацию о конфигурации OpenSSL и специфичные особенности сервера Gmail.

Оцените материал
Добавить комментарий

Капча загружается...