Использование telnet для диалога с SMTP-сервером
Читаю книгу "Computer Networking - A Top Down Approach", и там после главы про протокол SMTP задание:
"It is highly recommended that you use Telnet to carry out a direct dialogue with an SMTP server. To do this, issue
- telnet serverName 25
where serverName is the name of a local mail server. When you do this, you are simply establishing a TCP connection between your local host and the mail server. After typing this line, you should immediately receive the 220 reply from the server. Then issue the SMTP commands HELO , MAIL FROM , RCPT TO , DATA , CRLF.CRLF , and QUIT at the appropriate times".
Вот что я попробовал:
- Я: telnet smtp.mail.ru 25
- Сервер: 220 smtp48.i.mail.ru ESMTP ready
- Я: Helo aaaaaaa
- Сервер: 250 smtp48.i.mail.ru
- Я: MAIL FROM: [email protected] (мой почтовый ящик)
- Сервер: 250 2.0.0 OK
- Я: RCPT TO: [email protected] (почтовый ящик моего знакомого)
- Сервер: 550 SMTP is available only with SSL or TLS connection enabled.
Что я делаю не так? И вообще, как я понял из чтения этой главы, SMTP - это протокол, который используется для передачи e-mail сообщения от одного почтового сервера к другому - возможно ли выполнить это задание с моего ноутбука, на котором нет никакого серверного программного обеспечения? Или я должен как-то открыть командную строку именно на каком-то почтовом сервере, через telnet создать tcp-соединение с другим почтовым сервером и отправлять тому почтовому серверу, к которому подключился, сообщение? Если это все-таки возможно как-то сделать, то какова должна быть последовательность шагов, чтобы все-таки все завершилось успешно?
Ответы (1 шт):
Вы все делаете правильно в рамках учебного задания.
К сожалению, с тех пор как книга была написана, многое изменилось.
Проблема в спамерах.
Из за спам - активности практически все публичные серверы - а значит, и сервер, на котором находится почтовый ящик Вашего знакомого - имеют "белый лист IP адресов, с котрых они принимают почту". Ну, или "черный список спам - серверов, с которых они почту не принимают".
Кроме того, сейчас уже многие почтовые сервера просто не принимают письма по smtp без ssl-шифрования. А седлать упражнение с использованием ssl - это уже, скорее всего, выходит за рамки учебной программы.
Таким образом, Вам нужно найти smtp сервер, котрый 1) не фильтрует подключения по IP 2) не использует ssl. Боюсь, в дикой природе тких могло и не остаться. Можно установить его самому, просто для выполнения задания. Ну, или установить пару таких серверов и обмениваться между ними письмами. Гуглить по "smtp server docker"
Я псоледний раз сталкивался с незащищенными smtp серверами у провайдера [best-hosting.ru] 1 - это не реклама. Как уних сейчас - не знаю :-)
И еще - при вводе текста письма нужно завершать ввод точкой на отдельной строке и переводом строки после этой точки