Работа с почтовым сервером через telnet |
Обновлено: 15.06.2025 - 22:17
После того, как вы настроили почтовый сервер стоит проверить его работоспособность. Можно, конечно, настроить почтовый клиент и погонять почту туда-сюда, но это требует времени и определенных усилий. А если мы проводим проверку прямо на сервере, то почтового клиента может вообще там не оказаться. Конечно можно установить и настроить консольный клиент типа mutt, но зачем? У нас есть мощный инструмент — telnet. Вот с его помощью и будем работать с почтовым сервером.
После того, как вы настроили почтовый сервер стоит проверить его работоспособность. Можно, конечно, настроить почтовый клиент и погонять почту туда-сюда, но это требует времени и определенных усилий. А если мы проводим проверку прямо на сервере, то почтового клиента может вообще там не оказаться. Конечно можно установить и настроить консольный клиент типа mutt, но зачем? У нас есть мощный инструмент — telnet. Вот с его помощью и будем работать с почтовым сервером.
1. Отправка письма.
Почтовый сервер для отправки письма использует протокол SMTP, который по умолчанию работает на tcp-порту 25. Вполне возможен¸кстати, вариант его нахождения и на порту 587. Порт 587 использует служба submission — SMTP с проверкой подлинности, но это совсем не означает что не будет проходить авторизация клиентов почтового сервера на порту 25 (естественно, если вы это настроили) .
И так… Подготовительные действия... Логин и пароль мы должны передавать не в открытом виде, а в кодированном. По этому вначале сделаем соответствующие строки логина и пароля. В Linux это делается при помощи стандартной утилиты base64
$ echo 'my_login' | base64
bXlfbG9naW4K
$ echo 'my_password' | base64
bXlfcGFzc3dvcmQK
Именно эти значения мы и будем вводить в качестве логина-пароля.
Открываем сессию связи с почтовым сервером по SMTP
$ telnet mail-srv 25
Далее идет последовательность команд для отправки письма с комментариями к ним.
Trying 192.168.0.114... Connected to mail-srv. Escape character is '^]'. | Вывод на консоль попытки соединения с сервером |
220 mail-srv ESMTP (ubuntu) | При удачном соединении, сервер представляется |
ehlo test.com | Вводим строку приветствия |
250- mail-srv 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN | И получаем ответ от сервера |
auth login | Если нужна авторизация на сервере — вводим эту строку. Если авторизация не нужна, пропускаем эту команду и продолжаем ввод с команды “”mail from:” |
334 VXNlcm5hbWU6 | Получаем ответ от сервера |
bXlfbG9naW4K | Вводим наш логин в формате base64, который мы получили и запомнили выше |
334 UGFzc3dvcmQ6 | Получаем ответ от сервера |
bXlfcGFzc3dvcmQK | Вводим наш пароль в формате base64, который мы получили и запомнили выше |
235 2.7.0 Authentication successful | Сервер сообщает об успешной авторизации |
mail from: yakim@test.com | Указываем отправителя письма |
250 2.1.0 Ok | Ответ от сервера о том, что адрес принят |
rcpt to: yakim@test.net | Указываем получателя письма |
250 2.1.5 Ok | Ответ от сервера о том, что адрес принят |
data | После ввода этой команды начинаем само письмо |
354 End data with <CR><LF>.<CR><LF> | Ответ сервера на предыдущую команду |
subject: test telnet auth | Если нужна тема письма — вводим эту команду |
test .
| Тут пишем само письмо. Оно ОБЯЗАТЕЛЬНО должно заканчиваться последовательностью ENTER . ENTER |
250 2.0.0 Ok: queued as 415211810C6 | Ответ сервера о том, что письмо принято и поставлено в очередь. |
quit | Вводим команду отключения от сервера |
221 2.0.0 Bye Connection closed by foreign host. | Сервер сообщает об окончании сессии |
После этих действий, письмо будет принято сервером и отправлено на адрес получателя.
2. Проверка почты
Теперь проверим работу IMAP- сервера.
Представим, что нам с сервера нужно срочно получить письмо
Воспользуемся для этого все той-же утилитой telnet.
Соединимся с сервером
$ telnet mail-srv 143
Если у нас соединение с сервером IMAP шифрованное (по SSL), то команда соединения будет следующей:
$ openssl s_client -crlf -ign_eof -connect mail-srv:993
Далее идет последовательность команд для работы с сервером с комментариями к ним.
Trying 192.168.0.114... Connected to mail-srv. Escape character is '^]'. | Вывод на консоль попытки соединения с сервером |
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH=LOGIN] Dovecot ready. | При удачном соединении, сервер представляется |
. login our-login our-password | После команды . Login вводим в той же строке логин и пароль в открытом виде |
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in | Сервер сообщает об успешном логине |
. list "" "*" | Вводим команду просмотра списка почтовых папок |
И сервер их показывает | |
. status INBOX (messages) | Запрашиваем у сервера статус папки Inbox |
* STATUS "INBOX" (MESSAGES 1086) . OK Status completed. | Ответ сервера |
. select inbox | Выбираем папку Inbox |
Ответ сервера | |
. fetch 7 full | Даем команду серверу показать письмо № 7 |
Сервер показывает заголовки письма | |
. fetch 7 rfc822.text | Даем команду серверу показать тело письма № 7 |
Re: test mail
this is test mail ) | Сервер показывает тело письма |
. logout | Отключаемся от сервера |
* BYE Logging out . OK Logout completed. Connection closed by foreign host. | Сервер сообщает об окончании сессии |
Теперь для проверки почтового сервера нам уже не нужно настраивать почтовый клиент. В экстренном случае можно обойтись и Telnet
------------------------
Восстановление сайтов из Вебархива
Размещение по доскам объявлений России
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: Компьютерные советы
Комментарии |