Пост

Как проверить IMAP-сервер с помощью Telnet и OpenSSL

Как вручную проверить работу 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, чтобы защитить свои учетные данные.

Авторский пост защищен лицензией CC BY 4.0 .

Популярные теги