Как проверить IMAP-сервер с помощью Telnet и OpenSSL
Как вручную проверить работу IMAP-сервера через telnet и openssl: проверка подключения, авторизации и доступности почтового сервера.
Введение
Иногда возникает необходимость проверить работу IMAP-сервера вручную — например, чтобы убедиться в его доступности, проверить корректность авторизации или выявить проблемы с подключением. Для этих целей можно использовать утилиту telnet, а также openssl s_client — если используется шифрование (IMAPS).
Подключение к IMAP (порт 143)
Стандартный порт для IMAP — 143. Чтобы подключиться к серверу, с использованием telnet выполните команду:
1
telnet imap.example.com 143
Если подключение прошло успешно, вы увидите ответ сервера, например:
1
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
Авторизация
После подключения необходимо авторизоваться. Используется команда login, которой предшествует произвольный идентификатор (например, a):
1
a login john.doe secret123
Успешный ответ от сервера будет содержать:
1
a OK Logged in
Подключение к IMAPS (порт 993)
Для работы с шифрованным соединением (IMAPS) используется порт 993, а вместо telnet применяется утилита openssl s_client.
1
openssl s_client -connect imap.example.com:993
После установления соединения вы увидите информацию о сертификате сервера и сообщение о готовности сервера к работе:
1
CONNECTED(00000005) depth=2 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA verify return:1 ... --- * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
Авторизация
После успешного подключения к IMAPS через openssl s_client, выполняйте команду login для авторизации:
1
a login john.doe secret123
Успешный ответ от сервера будет содержать:
1
a OK Logged in
Основные IMAP-команды
Получить список папок
1
b list "" "*"
Пример вывода:
1
2
3
* LIST (\HasNoChildren) "." "INBOX"
* LIST (\HasNoChildren) "." "Sent"
* LIST (\HasNoChildren) "." "Drafts"
Открыть папку (например, INBOX)
1
c select INBOX
Сервер покажет количество сообщений и другие параметры:
1
2
3
* 5 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1234567890] UIDs valid c OK [READ-WRITE] Select completed
Получить заголовки писем
1
d fetch 1:* (FLAGS BODY[HEADER.FIELDS (FROM SUBJECT DATE)])
Завершение сессии
1
e logout
Ответ сервера:
1
2
* BYE Logging out
e OK Logout completed.
Заключение
Тестирование IMAP через telnet или openssl s_client — простой и эффективный способ убедиться в его работоспособности, проверить настройки подключения и авторизации. Это особенно полезно при настройке почтовых серверов или устранении проблем с подключением.
При работе с шифрованными соединениями (IMAPS) всегда используйте
openssl s_client, чтобы защитить свои учетные данные.
