Шаг 4. Сообщения об успехах и ошибках в сеансе Telnet
В этом разделе приводится информация об успешном и неудачном реагировании на команды, которые использовались в предыдущем примере.
Примечание
Трехзначные коды ответа SMTP, определенные в RFC 5321, одинаковы для всех серверов обмена сообщениями SMTP, но текстовые описания в ответах могут немного отличаться.
Коды ответа SMTP
SmTP-серверы отвечают на команды с помощью различных числовые коды ответов в формате x.y.z, где:
- X указывает, была ли команда хорошей, плохой или неполной.
- Y указывает тип отправленного ответа.
- Z предоставляет дополнительные сведения о команде
Когда сервер, открывав подключение, получает ответ, который может определить, принял ли удаленный сервер команду и готов ли он к следующей, или произошла ошибка.
Первая цифра (X) особенно важна для понимания, так как указывает на успешность или сбой отправленной команды. Вот его возможные значения и их значения.
Код ответа | Смысл |
---|---|
2.y.z | Командная команда, которая была отправлена, успешно выполнена на удаленном сервере. Удаленный сервер готов к следующей команде. |
3.y.z | Команда была принята, но удаленный сервер нуждается в дополнительных сведениях до завершения операции. Сервер отправки должен отправить новую команду с необходимой информацией. |
4.y.z | Команда не была принята удаленным сервером по причине, которая может быть временной. Отправляя сервер должен попытаться подключиться позже, чтобы узнать, может ли удаленный сервер успешно принять команду. Сервер отправки будет продолжать повторное подключение, пока не будет завершено успешное подключение (указано кодом 2.y.z) или не будет выполнено постоянно (указано кодом 5.y.z). Пример временной ошибки — низкое пространство для хранения на удаленном сервере. После того как будет доступно больше места, удаленный сервер сможет успешно принять команду. |
5.y.z | Команда не была принята удаленным сервером по причине невозможности восстановления. Сервер отправки не будет повторить подключение и отправит отчет о невывозе обратно пользователю, который отправил сообщение. Примером невозвратной ошибки является сообщение, отправленное на неустойкий адрес электронной почты. |
В таблице выше представлена информация, представленная . Дополнительные сведения, включая описания второй (Y) и третьей (Z) цифр smTP-кодов ответов, включены в этот раздел, а также в разделах и .
Команда OPEN
Успешный ответ:
Ответ на сбой:
Возможные причины сбоя:
- SMTP-служба назначения недоступна.
- Ограничения брандмауэра назначения.
- Ограничения на исходный брандмауэр.
- Неправильный FQDN или IP-адрес для сервера SMTP назначения.
- Неправильный номер порта.
Команда EHLO
Успешный ответ:
Ответ на сбой:
Возможные причины сбоя:
- Недействительные символы в доменном имени.
- Ограничения подключения на сервере SMTP назначения.
Примечание
EHLO — это глагол Расширенного протокола передачи простых сообщений (ESMTP), определенный в RFC 5321. ESMTP-серверы могут объявлять о своих возможностях в процессе начального подключения. Эти возможности включают максимальный допустимый размер сообщения и поддерживаемые методы проверки подлинности. HELO это более старая команда SMTP, определенная в RFC 821. Большинство SMTP-серверов обмена сообщениями поддерживают ESMTP и EHLO. Если сервер Exchange, к который вы пытаетесь подключиться, не поддерживает EHLO, вместо него можно использовать HELO.
КОМАНДА MAIL FROM
Успешный ответ:
Ответ на сбой:
Возможные причины сбоя: ошибка синтаксиса в адресе электронной почты отправитель.
Ответ на сбой:
Возможные причины сбоя: сервер назначения не принимает анонимные сообщения. Вы получаете эту ошибку, если вы пытаетесь использовать Telnet для отправки сообщения непосредственно на сервер почтовых ящиков, в который не установлен соединиттель Прием, настроенный для приемки анонимных подключений.
Отправка сообщения SMTP командами
Приветствуем сервер:
helo domain.local
В ответ получаем встречное приветствие с кодом 250, например, 250 relay.dmosk.ru.
Вводим адрес, от которого будем отправлять сообщение:
mail from:[email protected]
В ответ должны получить 250 2.1.0 Ok.
На какой адрес отправляем сообщение:
rcpt to:[email protected]
Получаем ответ 250 2.1.5 Ok.
Вводим команду:
data
Получим 354 End data with <CR><LF>.<CR><LF> — это означает, что можно вводить текст сообщения:
subject:test subject
test text
Чтобы закончить, с новой строки ставим точку и нажимаем Enter:
В ответ должны увидеть что-то подобное: 250 2.0.0 Ok: queued as A340FC4B70C, где последний код — идентификатор сообщения, присвоенный сервером.
Сообщение отправлено.
Итоговая картина:
220 relay.dmosk.ru ESMTP Postfix
502 5.5.2 Error: command not recognized
helo domain.local
250 relay.dmosk.ru
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject:test subject
test text
.
250 2.0.0 Ok: queued as A5E60C4B70C
Отправка письма через telnet с авторизацией:
А что если нужно авторизоваться? Сначала нам понадобится наш логин и пароль закодировать в base64-кодировку, это можно сделать например вот тут: base64.ru
Предположим что мой логин — «elimS», пароль: «MyPassword». Тогда закодированные логин и пароль будут соответственно: «ZWxpbVM=» и «TXlQYXNzd29yZA==»
Последовательность команд будет следующей (если разрешена plaintext-авторизация ):
- telnet адрес_сервера 25 — подключаемся к серверу
- ehlo
- auth login
- ZWxpbVM= — закодированный логин «elimS»
- TXlQYXNzd29yZA== — закодированный пароль «MyPassword»
- mail from:[email protected] — ваш почтовый ящик, с которого отправляется письмо
- rcpt to:[email protected] — ящик на который отправляется письмо
- data
- subject:тема письма — не обязательная команда, если ее пропустить, то письмо будет без темы
- тут печатаем текст письма
- текст письма может быть из множества строк
- конец письма заканчивается одной точкой в отдельной строке, так как в следующей строке:
- .
- quit — завершаем сеанс и выходит из telnet
И снова лог общения с сервером с пояснениями:
telnet MailServer 25 220 domain.com.ua Microsoft ESMTP MAIL Service, Version: 42 ehlo 250-domain.com.ua Hello - IP адрес локального компьютера 250-TURN 250-SIZE 250-ETRN 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-8bitmime 250-BINARYMIME 250-CHUNKING 250-VRFY 250-TLS 250-STARTTLS 250-X-EXPS GSSAPI NTLM LOGIN 250-X-EXPS=LOGIN 250-AUTH GSSAPI NTLM LOGIN 250-AUTH=LOGIN 250-X-LINK2STATE 250-XEXCH50 250 OK auth login 334 VXNlcm5hbWU6 - что значит в base64-кодировке "Username:" ZWxpbVM= 334 UGFzc3dvcmQ6 - что значит в base64-кодировке "Password:" TXlQYXNzd29yZA== 235 2.7.0 Authentication successful. mail from:[email protected] 250 2.1.0 [email protected] OK rcpt to:[email protected] 250 2.1.5 [email protected] data 354 Start mail input; end with <CRLF>.<CRLF> subject:тема письма тут печатаем текст письма текст письма может быть из множества строк конец письма заканчивается одной точкой в отдельной строке как в следующей строке: . 250 2.6.0 <[email protected]> Queued mail for delivery quit 221 2.0.0 domain.com.ua Service closing transmission channel подключение к узлу утеряно
Вот, собственно и все.
Опубликовано в рубрике Администрирование
Что нужно знать перед началом работы
-
Предполагаемое время для завершения: 15 минут.
-
Разрешения Exchange не применяются к процедурам, описанным в этом разделе. Эти процедуры выполняются в операционной системе Exchange или клиентского компьютера.
-
В этом разделе показано, как использовать Telnet Client, который включен в Windows. Сторонним клиентам Telnet может потребоваться синтаксис, который отличается от показанного в этом разделе.
-
В этом разделе покажут, как подключиться к серверу, который позволяет анонимным подключениям с помощью порта TCP 25. Если вы пытаетесь подключиться к этому серверу из Интернета, необходимо убедиться, что Exchange сервер можно получить из Интернета в порту TCP 25. Аналогичным образом, если вы пытаетесь достичь сервера в Интернете с Exchange сервера, необходимо убедиться, что Exchange сервер может открыть подключение к Интернету в TCP-порте 25.
-
Вы можете заметить некоторые соединители получения, которые используют TCP-порт 2525. Это внутренние соединители приемников, которые не используются для приемки анонимных подключений SMTP.
-
Если вы тестируете подключение на удаленном сервере обмена сообщениями, необходимо выполнить действия в этом разделе на Exchange сервере. Удаленные серверы обмена сообщениями часто настроены, чтобы убедиться, что IP-адрес, на котором происходит подключение SMTP, совпадает с доменом в электронном адресе отправитель.
-
Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования Exchange.
Совет
Возникли проблемы? Попросите помощи на форумах Exchange. Перейти на форумы можно по следующим ссылкам: Exchange Server, Exchange Online или Exchange Online Protection.
Что нужно знать перед началом работы
-
Предполагаемое время для завершения: 15 минут.
-
Разрешения Exchange не применяются к процедурам, описанным в этом разделе. Эти процедуры выполняются в операционной системе Exchange или клиентского компьютера.
-
В этом разделе показано, как использовать Telnet Client, который включен в Windows. Сторонним клиентам Telnet может потребоваться синтаксис, который отличается от показанного в этом разделе.
-
В этом разделе покажут, как подключиться к серверу, который позволяет анонимным подключениям с помощью порта TCP 25. Если вы пытаетесь подключиться к этому серверу из Интернета, необходимо убедиться, что Exchange сервер можно получить из Интернета в порту TCP 25. Аналогичным образом, если вы пытаетесь достичь сервера в Интернете с Exchange сервера, необходимо убедиться, что Exchange сервер может открыть подключение к Интернету в TCP-порте 25.
-
Вы можете заметить некоторые соединители получения, которые используют TCP-порт 2525. Это внутренние соединители приемников, которые не используются для приемки анонимных подключений SMTP.
-
Если вы тестируете подключение на удаленном сервере обмена сообщениями, необходимо выполнить действия в этом разделе на Exchange сервере. Удаленные серверы обмена сообщениями часто настроены, чтобы убедиться, что IP-адрес, на котором происходит подключение SMTP, совпадает с доменом в электронном адресе отправитель.
-
Сочетания клавиш для процедур, описанных в этой статье, приведены в статье Сочетания клавиш в Центре администрирования Exchange.
Совет
Возникли проблемы? Попросите помощи на форумах Exchange. Перейти на форумы можно по следующим ссылкам: Exchange Server, Exchange Online или Exchange Online Protection.
Telnet и HTTP: получение HEAD
Telnet и получение HEAD HTTP запрос запроса протокола Методы и структура протокола HTTP.
Проверка Кода Состояния HTTP с помощью Telnet.
$ telnet СЕРВЕР ПОРТ Trying xxx.xxx.xxx.xxx... Connected to СЕРВЕР. Escape character is '^]'. HEAD ВЕБ-СТРАНИЦА HTTP1.1 HOST: СЕРВЕР <Нажмите ENTER>
Например:
telnet> open websl.biz 80 Trying 65.52.137.176... Connected to websl.biz. Escape character is '^]'. HEAD HTTP1.1 HOST: websl.biz HTTP1.1 200 OK Cache-Control: private Content-Length: 5825 Content-Type: texthtml; charset=utf-8 Server: Microsoft-IIS7.5 X-AspNetMvc-Version: 3.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Mon, 28 Jan 2013 21:25:15 GMT
Начинаем пользоваться
Запуск
Запустить TELNET на Windows 7 и на любой другой Винде достаточно просто. Для этого необходимо сначала клиент, если он ещё не установлен:
Зайти в Панель управления.
- Выбрать пункт «Программы».
- Выбрать вкладку «Включение или отключение компонентов Windows».
Найти Telnet-клиент и поставить напротив него маркер, если он ещё не установлен.
После нажимаем «ОК» и ждём минуту, пока клиент устанавливается.
Запуск терминала осуществляется в Windows через командную строку, если у вас не установлено каких-либо специальных утилит для работы с Телнет. Но раз вы читаете эту статью, значит, только начинаете знакомство с этой темой, и для начала неплохо бы было освоить основы управления при помощи командной строки.
- Запускаем командную строку от имени администратора.
- Вводим «telnet».
Командная строка перезагружается, и теперь откроется командная линия TELNET, в которой мы и будем работать.
Проверяем порт
Одно из простейших действий, выполняемых в TELNET — проверка порта. Вы можете проверить порт на наличие доступа к нему с вашего компьютера. Для этого нужно сделать следующее:
В командной строке, открытой по методу выше вводим: telnetip-адрес номер порта
К примеру, если ваш IP-адрес 192.168.0.1, а номер порта 21 (порт FTP), то вводим:
telnet 192.168.0.1 21
Если команда выдаёт сообщение об ошибке, значит, порт недоступен. Если появляется пустое окно или просьба ввести дополнительные данные, значит, порт открыт. Для Windows такой способ проверить порт может быть достаточно удобным.
Команды
Команды TELNET составляют основу использования терминала. С их помощью можно управлять компьютером, который использует этот протокол, если для вас разрешён доступ, а также совершать другие различные действия. Как уже сказано выше, на Windowsони вводятся в командной строке приложения Телнет.
Для того чтобы увидеть основной список команд, введите в строке helpи нажмите «Enter». Базовые команды:
- Open — подключение к удалённому серверу. Необходимо ввести эту команду вместе с именем управляемого сервера и номером порта, например: openredmond 44. Если параметры не указаны, то используются локальный сервер и порт по умолчанию.
- Close — отключение от удалённого сервера. Используются аналогичные параметры.
-
Set — настройка удалённого сервера, используется с именем управляемого сервера. Вместе с Set используются следующие команды:
- — используется, чтобы задавать терминал указанного типа.
- — задаёт управляющий символ.
- — задаёт режим работы.
- Unset — отключает заданный ранее параметр.
- Start — запускает сервер Телнет.
- Pause — ставит работу сервера на паузу.
- Continue — возобновляет работу.
- Stop — останавливает сервер.
TELNET — один из старейших протоколов, но при этом он до сих пор применяется. Это означает, что и вы можете начать использовать его в своих целях. Для этого нужно лишь изучить синтаксис и список команд и начать практиковаться. Вы можете почерпнуть много нового, а заодно совсем по-другому начать смотреть на интернет и на привычные ранее действия в сети.
Сетевой протокол и текстовый интерфейс
TELNET — это средство связи, которое устанавливает транспортное соединение между терминальными устройствами, клиентами, то есть вашим компьютером и чьей-то ещё машиной, сервером, поддерживающей этот стандарт соединения. Это не специальная программа, а всего лишь сетевой протокол, но также словом TELNET (terminalnetwork) называют различные утилиты, которые также используют этот протокол. Сегодня Телнет присутствует практически везде, все ОС, так или иначе, его используют, в том числе и Windows.
TELNET реализует текстовый интерфейс, который отличается от привычного рядовому пользователю графического тем, что все команды необходимо вбивать вручную.
Что нам всё это даёт?
Ранее эта служба была одним из немногих способов подключения к сети, но с течением времени утратила свою актуальность. Сегодня есть гораздо более удобные программы, которые делают за пользователя всю работу, и не заставляют его заучивать наизусть различные команды для того, чтобы выполнить простейшие действия. Однако кое-что при помощи Телнет можно сделать и сейчас.
Подключения к сети
При помощи Телнет вы можете:
- подключаться к удалённым компьютерам;
- проверить порт на наличие доступа;
- использовать приложения, которые доступны только на удалённых машинах;
- использовать различные каталоги, к которым получить доступ можно только таким образом;
- отправлять электронные письма без использования специальных программ (клиентов);
- понимать суть работы многих протоколов, использующихся сегодня, и извлекать из этого для себя определённую выгоду;
- обеспечивать другим юзерам доступ к данным, размещённым на своём компьютере.
Задания¶
Задание 1
Создать проект со следующей структурой:
myproject/ ├── about │ └── aboutme.html └── index.html
В файле index.html написать 2 ссылки с прямым и абсолютным обращением к
aboutme.html. В файле aboutme.html создать такие же ссылки на файл
index.html.
Задание 2
Примечание
- http://hurl.quickblox.com.
Подключиться по telnet к http://wikipedia.org и отправить запрос:
GET wikiстраница HTTP1.1 Host ru.wikipedia.org User-Agent Mozilla5.0 (X11; U; Linux i686; ru; rv1.9b5) Gecko2008050509 Firefox3.0b5 Accept texthtml Connection close (пустая строка)
Проанализировать ответ сервера. Описать работу HTTP протокола в данном случае.
Разрешается выбрать любой другой веб-сайт вместо http://WikiPedia.org
Задание 3
Отправить запросы на http://httpbin.org, проанализировать ответ и код
состояния. Описать работу HTTP протокола в каждом запросе.
- Запросить данные GET запросом с ресурса ip
/ip
GET /ip HTTP/1.1 Host: httpbin.org Accept: */*
- Выполнить запрос методом GET
/get
GET /get?foo=bar&1=2&2/0&error=True HTTP/1.1 Host: httpbin.org Accept: */*
- Выполнить запрос методом POST
/post
POST /post HTTP/1.1 Host: httpbin.org Accept: */* Content-Length: вычислить длину контента и втавить сюда число!!! Content-Type: application/x-www-form-urlencoded foo=bar&1=2&2%2F0=&error=True
Попробовать ввести неверное значение .
- Отправить запрос на установку Cookie
/cookies/set
GET /cookies/set?country=Ru HTTP/1.1 Host: httpbin.org Accept: */*
- Просмотреть список установленных Cookie
/cookies
GET /cookies HTTP/1.1 Host: httpbin.org Accept: */*
- Отправить запрос на страницу с перенаправлением
См.также
https://developer.mozilla.org/ru/docs/Web/HTTP/Redirections
/redirect
GET /redirect/4 HTTP/1.1 Host: httpbin.org Accept: */*
Проверить глубину рекурсии в браузере, сравниь со значением опции
из в браузере FireFox.
Отправка письма через telnet без авторизации:
Запускаем консоль (командную строку) и вводим последовательность команд для отправки письма:
- telnet адрес_сервера 25 — подключаемся к серверу
- helo имя_хоста_с_которого_подключаетесь
- mail from:[email protected] — ваш почтовый ящик, с которого отправляется письмо
- rcpt to:[email protected] — ящик на который отправляется письмо
- data
- subject:тема письма — не обязательная команда, если ее пропустить, то письмо будет без темы
- тут печатаем текст письма
- текст письма может быть из множества строк
- конец письма заканчивается одной точкой в отдельной строке
- как в следующей строке:
- .
- quit — завершаем сеанс и выходит из telnet
Ниже копирую из консоли то, как я вводил команды и что получал в ответ (жирный шрифт — мои команды, курсив — ответы сервера):
telnet MailServer 25 220 domain.com.ua Microsoft ESMTP MAIL Service, Version: 42 helo 250 domain.com.ua Hello mail from:[email protected] 250 2.1.0 [email protected] OK rcpt to:[email protected] 250 2.1.5 [email protected] data 354 Start mail input; end with <CRLF>.<CRLF> subject:тема письма тут печатаем текст письма текст письма может быть из множества строк конец письма заканчивается одной точкой в отдельной строке как в следующей строке: . 250 2.6.0 <[email protected]> Queued mail for delivery quit 221 2.0.0 domain.com.ua Service closing transmission channel подключение к узлу утеряно
Письмо отправлено, прошу заметить, без авторизации на почтовом сервере, то есть не вводили свой логин и пароль, этот сервер позволяет мне отправлять без авторизации.
Step 3: Use Telnet on Port 25 to test SMTP communication
In this example, we’re going to use the following values. When you run the commands on your server, replace these values with ones for your organization’s SMTP server, domain, etc.
- Destination SMTP server: mail1.fabrikam.com
- Source domain: contoso.com
- Sender’s e-mail address: [email protected]
- Recipient’s e-mail address: [email protected]
- Message subject: Test from Contoso
- Message body: This is a test message
Tip
The commands in the Telnet Client aren’t case-sensitive. The SMTP command verbs in this example are capitalized for clarity. You can’t use the backspace key in the Telnet session after you connect to the destination SMTP server. If you make a mistake as you type an SMTP command, you need to press Enter, and then type the command again. Unrecognized SMTP commands or syntax errors result in an error message that looks like this: .
-
Open a Command Prompt window, type , and then press Enter.
This command opens the Telnet session.
-
Type , and then press Enter.
This optional command lets you view the characters as you type them, and it might be required for some SMTP servers.
-
Type , and then press Enter.
This optional command enables logging and specifies the log file for the Telnet session. If you only specify a file name, the log file is located in the current folder. If you specify a path and file name, the path needs to be on the local computer, and you might need to enter the path and file name in the Windows DOS 8.3 format (short name with no spaces). The path needs to exist, but the log file is created automatically.
-
Type , and then press Enter.
-
Type , and then press Enter.
-
Type , and then press Enter.
The optional NOTIFY command specifies the particular delivery status notification (DSN) messages (also known as bounce messages, nondelivery reports, or NDRs) that the SMTP is required to provide. In this example, you’re requesting a DSN message for successful or failed message delivery.
-
Type , and then press Enter.
-
Type , and then press Enter.
-
Press Enter again.
A blank line is needed between the Subject: field and the message body.
-
Type , and then press Enter.
-
Type a period ( . ), and then press Enter.
-
To disconnect from the SMTP server, type , and then press Enter.
-
To close the Telnet session, type , and then press Enter.
Here’s what a successful session using the steps above looks like:
Действие 3. Использование протокола Telnet на порте 25 для проверки связи по протоколу SMTP.
В этом примере мы будем использовать следующие значения. При запуске команд на сервере замените эти значения на smTP-сервер, домен вашей организации и т. д.
- Сервер SMTP назначения: mail1.fabrikam.com
- Исходный домен: contoso.com
- Адрес электронной почты отправитель: [email protected]
- Адрес электронной почты получателя: [email protected]
- Тема сообщения: Тест от Contoso
- Текст сообщения. Это тестовая
Совет
Команды в клиенте Telnet не чувствительны к делу. Глаголы команд SMTP в этом примере капитализируются для ясности. Вы не можете использовать клавишу backspace в сеансе Telnet после подключения к серверу SMTP назначения. Если при введите команду SMTP, необходимо нажать кнопку Ввод, а затем снова ввести команду. Неучтаные команды SMTP или ошибки синтаксиса приводит к сообщению об ошибке, которое выглядит так: .
-
Откройте окно Командная подсказка, введите и нажмите кнопку Ввод.
Эта команда открывает сеанс Telnet.
-
Введите и нажмите кнопку Ввод.
Эта необязательная команда позволяет просматривать символы при введите их, что может потребоваться для некоторых серверов SMTP.
-
Введите и нажмите кнопку Ввод.
Эта необязательная команда включает ведение журнала и указывает файл журнала для сеанса Telnet. Если указать только имя файла, файл журнала находится в текущей папке. Если указать путь и имя файла, путь должен быть на локальном компьютере, и может потребоваться ввести путь и имя файла в формате Windows DOS 8.3 (короткое имя без пробелов). Путь должен существовать, но файл журнала создается автоматически.
-
Введите и нажмите кнопку Ввод.
-
Введите и нажмите кнопку Ввод.
-
Введите и нажмите кнопку Ввод.
-
Введите и нажмите кнопку Ввод.
Необязательная команда NOTIFY указывает определенные сообщения уведомления о состоянии доставки (DSN) (также известные как сообщения отказов, отчеты о неделиверии или NDRs), которые должен предоставить SMTP. В этом примере запрашивается сообщение DSN для успешной или неудачной доставки сообщений.
-
Введите и нажмите кнопку Ввод.
-
Введите и нажмите кнопку Ввод.
-
Еще раз нажмите клавишу ВВОД.
Между субъектом: полем и телом сообщения необходима пустая строка.
-
Введите и нажмите кнопку Ввод.
-
Введите период ( . ) и нажмите клавишу ВВОД.
-
Чтобы отключиться от сервера SMTP, введите и нажмите кнопку Ввод.
-
Чтобы закрыть сеанс Telnet, введите и нажмите кнопку Ввод.
Вот как выглядит успешное занятие с помощью вышеуказанных действий:
Действие 3. Использование протокола Telnet на порте 25 для проверки связи по протоколу SMTP.
В этом примере мы будем использовать следующие значения. При запуске команд на сервере замените эти значения на smTP-сервер, домен вашей организации и т. д.
- Сервер SMTP назначения: mail1.fabrikam.com
- Исходный домен: contoso.com
- Адрес электронной почты отправитель: [email protected]
- Адрес электронной почты получателя: [email protected]
- Тема сообщения: Тест от Contoso
- Текст сообщения. Это тестовая
Совет
Команды в клиенте Telnet не чувствительны к делу. Глаголы команд SMTP в этом примере капитализируются для ясности. Вы не можете использовать клавишу backspace в сеансе Telnet после подключения к серверу SMTP назначения. Если при введите команду SMTP, необходимо нажать кнопку Ввод, а затем снова ввести команду. Неучтаные команды SMTP или ошибки синтаксиса приводит к сообщению об ошибке, которое выглядит так: .
-
Откройте окно Командная подсказка, введите и нажмите кнопку Ввод.
Эта команда открывает сеанс Telnet.
-
Введите и нажмите кнопку Ввод.
Эта необязательная команда позволяет просматривать символы при введите их, что может потребоваться для некоторых серверов SMTP.
-
Введите и нажмите кнопку Ввод.
Эта необязательная команда включает ведение журнала и указывает файл журнала для сеанса Telnet. Если указать только имя файла, файл журнала находится в текущей папке. Если указать путь и имя файла, путь должен быть на локальном компьютере, и может потребоваться ввести путь и имя файла в формате Windows DOS 8.3 (короткое имя без пробелов). Путь должен существовать, но файл журнала создается автоматически.
-
Введите и нажмите кнопку Ввод.
-
Введите и нажмите кнопку Ввод.
-
Введите и нажмите кнопку Ввод.
-
Введите и нажмите кнопку Ввод.
Необязательная команда NOTIFY указывает определенные сообщения уведомления о состоянии доставки (DSN) (также известные как сообщения отказов, отчеты о неделиверии или NDRs), которые должен предоставить SMTP. В этом примере запрашивается сообщение DSN для успешной или неудачной доставки сообщений.
-
Введите и нажмите кнопку Ввод.
-
Введите и нажмите кнопку Ввод.
-
Еще раз нажмите клавишу ВВОД.
Между субъектом: полем и телом сообщения необходима пустая строка.
-
Введите и нажмите кнопку Ввод.
-
Введите период ( . ) и нажмите клавишу ВВОД.
-
Чтобы отключиться от сервера SMTP, введите и нажмите кнопку Ввод.
-
Чтобы закрыть сеанс Telnet, введите и нажмите кнопку Ввод.
Вот как выглядит успешное занятие с помощью вышеуказанных действий:
Команда DATA
Эта команда является основной в протоколе SMTP. После обработки команд MAIL и RCPT команда DATA используется для передачи информационной части сообщения. Формат команды DATA следующий:
DATA
Все, что следует за этой командой, интерпретируется как сообщение для передачи. Сервер SMTP, как правило, дополняет заголовок сообщения меткой времени и информацией об обратном маршруте return-path. Программа-клиент обозначает конец сообщения посредством передачи строки с одной точкой. Формат этой строки следующий:
<CR><LF>.<CR><LF>
Приняв эту последовательность, сервер SMTP «понимает», что передача сообщения закончена и следует вернуть код ответа, который оповестит клиента о том, что его сообщение принято.
Шаг 2. Найдите FQDN или IP-адрес сервера SMTP назначения
Чтобы подключиться к smTP-серверу с помощью Telnet в порту 25, необходимо использовать полное доменное имя (FQDN) (например, mail.contoso.com) или IP-адрес сервера SMTP. Если вы не знаете FQDN или IP-адрес, вы можете использовать средство командной строки Nslookup для поиска записи MX для домена назначения.
Примечание
Сетевые политики могут помешать вам использовать средство Nslookup для запроса общедоступных DNS-серверов в Интернете. В качестве альтернативы можно использовать один из свободно доступных веб-сайтов-поисков DNS или веб-сайтов для записи записей MX в Интернете.
-
В командной подсказке введите и нажмите кнопку Ввод. Эта команда открывает сеанс Nslookup.
-
Введите и нажмите кнопку Ввод.
-
Введите имя домена, для которого нужно найти запись MX. Например, чтобы найти запись MX для домена fabrikam.com, введите и нажмите кнопку Ввод.
Примечание
При использовании периода отсевной пользования ( . ), вы не позволяете непреднамеренно добавлять суффиксы DNS по умолчанию в доменное имя.
Выходные данные команды выглядят так:
В качестве SMTP-сервера назначения можно использовать любые имена узлов или IP-адреса, связанные с MX-записями. Более низкое значение для предпочтений (предпочтение = 10 против 20) указывает на предпочтительный smTP-сервер. Несколько записей MX и различные значения предпочтений используются для балансировки нагрузки и допуска неисправностей.
-
Когда вы будете готовы закончить сеанс Nslookup, введите и нажмите кнопку Ввод.
Шаг 4. Сообщения об успехах и ошибках в сеансе Telnet
В этом разделе приводится информация об успешном и неудачном реагировании на команды, которые использовались в предыдущем примере.
Примечание
Трехзначные коды ответа SMTP, определенные в RFC 5321, одинаковы для всех серверов обмена сообщениями SMTP, но текстовые описания в ответах могут немного отличаться.
Коды ответа SMTP
SmTP-серверы отвечают на команды с помощью различных числовые коды ответов в формате x.y.z, где:
- X указывает, была ли команда хорошей, плохой или неполной.
- Y указывает тип отправленного ответа.
- Z предоставляет дополнительные сведения о команде
Когда сервер, открывав подключение, получает ответ, который может определить, принял ли удаленный сервер команду и готов ли он к следующей, или произошла ошибка.
Первая цифра (X) особенно важна для понимания, так как указывает на успешность или сбой отправленной команды. Вот его возможные значения и их значения.
Код ответа | Смысл |
---|---|
2.y.z | Командная команда, которая была отправлена, успешно выполнена на удаленном сервере. Удаленный сервер готов к следующей команде. |
3.y.z | Команда была принята, но удаленный сервер нуждается в дополнительных сведениях до завершения операции. Сервер отправки должен отправить новую команду с необходимой информацией. |
4.y.z | Команда не была принята удаленным сервером по причине, которая может быть временной. Отправляя сервер должен попытаться подключиться позже, чтобы узнать, может ли удаленный сервер успешно принять команду. Сервер отправки будет продолжать повторное подключение, пока не будет завершено успешное подключение (указано кодом 2.y.z) или не будет выполнено постоянно (указано кодом 5.y.z). Пример временной ошибки — низкое пространство для хранения на удаленном сервере. После того как будет доступно больше места, удаленный сервер сможет успешно принять команду. |
5.y.z | Команда не была принята удаленным сервером по причине невозможности восстановления. Сервер отправки не будет повторить подключение и отправит отчет о невывозе обратно пользователю, который отправил сообщение. Примером невозвратной ошибки является сообщение, отправленное на неустойкий адрес электронной почты. |
В таблице выше представлена информация, представленная . Дополнительные сведения, включая описания второй (Y) и третьей (Z) цифр smTP-кодов ответов, включены в этот раздел, а также в разделах и .
Команда OPEN
Успешный ответ:
Ответ на сбой:
Возможные причины сбоя:
- SMTP-служба назначения недоступна.
- Ограничения брандмауэра назначения.
- Ограничения на исходный брандмауэр.
- Неправильный FQDN или IP-адрес для сервера SMTP назначения.
- Неправильный номер порта.
Команда EHLO
Успешный ответ:
Ответ на сбой:
Возможные причины сбоя:
- Недействительные символы в доменном имени.
- Ограничения подключения на сервере SMTP назначения.
Примечание
EHLO — это глагол Расширенного протокола передачи простых сообщений (ESMTP), определенный в RFC 5321. ESMTP-серверы могут объявлять о своих возможностях в процессе начального подключения. Эти возможности включают максимальный допустимый размер сообщения и поддерживаемые методы проверки подлинности. HELO это более старая команда SMTP, определенная в RFC 821. Большинство SMTP-серверов обмена сообщениями поддерживают ESMTP и EHLO. Если сервер Exchange, к который вы пытаетесь подключиться, не поддерживает EHLO, вместо него можно использовать HELO.
КОМАНДА MAIL FROM
Успешный ответ:
Ответ на сбой:
Возможные причины сбоя: ошибка синтаксиса в адресе электронной почты отправитель.
Ответ на сбой:
Возможные причины сбоя: сервер назначения не принимает анонимные сообщения. Вы получаете эту ошибку, если вы пытаетесь использовать Telnet для отправки сообщения непосредственно на сервер почтовых ящиков, в который не установлен соединиттель Прием, настроенный для приемки анонимных подключений.