Отправка письма через telnet

При помощи данных команд удобно тестировать работу почтовых серверов.

Подключение по telnet

Проще всего подключиться к почтовому серверу из командной строки Linux:

или программы Putty:

Мы должны увидеть ответ сервера с кодом 220 (готовность к работе), например:

220 relay.dmosk.ru ESMTP Postfix

Отправка сообщения SMTP командами

В ответ получаем встречное приветствие с кодом 250, например, 250 relay.dmosk.ru.

Вводим адрес, от которого будем отправлять сообщение:

В ответ должны получить 250 2.1.0 Ok.

На какой адрес отправляем сообщение:

Получаем ответ 250 2.1.5 Ok.

Получим 354 End data with . — это означает, что можно вводить текст сообщения:

Чтобы закончить, с новой строки ставим точку и нажимаем 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:master@dmosk.ru
250 2.1.0 Ok
rcpt to:test@dmosk.ru
250 2.1.5 Ok
data
354 End data with .
subject:test subject
test text
.
250 2.0.0 Ok: queued as A5E60C4B70C

Аутентификация

Если почтовый сервер требует аутентификацию, необходимо сначала авторизоваться в системе.

Для этого вместо или после приветствия вводим:

* EHLO — расширенное приветствие, которое позволит получить возможности почтового сервера.

В ответ мы получаем, примерно, следующее:

250-relay.dmosk.ru Hello [192.168.0.15]
250-SIZE 10485760
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-X-ANONYMOUSTLS
250-AUTH LOGIN PLAINT
250-X-EXPS GSSAPI NTLM
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250-XEXCH50
250-XRDST
250 XSHADOW

* в списке мы можем увидеть разные методы аутентификации (перечислены после AUTH).

Base64

Данные авторизации передаются в закодированном виде с использованием стандарта Base64.

Читайте также:  Fn4a el какое масло

Чтобы закодировать свои логин и пароль, можно воспользоваться одним из перечисленных способов ниже.

1. Powershell:

2. Perl:

perl -MMIME::Base64 -e ‘print encode_base64("текст");’

3. Онлайн:

LOGIN

При данном методе мы по очереди передаем закодированные логин и пароль.

После приветствия вводим:

В ответ получаем:

После этого отправляем логин в base64, например dmosk:

И вводим пароль (password):

Если аутентификация прошла успешно, увидим:

235 2.0.0 Authentication successful

PLAIN

Данный метод аутентификации отличается от вышеописанного тем, что логин с паролем передаются одной строкой. Base64 для них получаем следующей командой, например, в Powershell:

* где username и password — логин и пароль для аутентификации; — нулевой байт.

Бывает возникает необходимость проверить работоспособность почтового сервера. Это можно сделать при помощи командной строки и команды telnet, попытаться таким образом отравить письмо.

Отправка письма через telnet без авторизации:

Запускаем консоль (командную строку) и вводим последовательность команд для отправки письма:

  • telnet адрес_сервера 25 – подключаемся к серверу
  • helo имя_хоста_с_которого_подключаетесь
  • mail from:user@domain.com – ваш почтовый ящик, с которого отправляется письмо
  • rcpt to:mail@domain2.com – ящик на который отправляется письмо
  • data
  • subject:тема письма – не обязательная команда, если ее пропустить, то письмо будет без темы
  • тут печатаем текст письма
  • текст письма может быть из множества строк
  • конец письма заканчивается одной точкой в отдельной строке
  • как в следующей строке:
  • .
  • quit – завершаем сеанс и выходит из telnet

Ниже копирую из консоли то, как я вводил команды и что получал в ответ (жирный шрифт – мои команды, курсив – ответы сервера):

Письмо отправлено, прошу заметить, без авторизации на почтовом сервере, то есть не вводили свой логин и пароль, этот сервер позволяет мне отправлять без авторизации.

Читайте также:  Топливная система форд транзит

Отправка письма через telnet с авторизацией:

А что если нужно авторизоваться? Сначала нам понадобится наш логин и пароль закодировать в base64-кодировку, это можно сделать например вот тут: base64.ru

Предположим что мой логин – "elimS", пароль: "MyPassword". Тогда закодированные логин и пароль будут соответственно: "ZWxpbVM=" и "TXlQYXNzd29yZA=="

Последовательность команд будет следующей (если разрешена plaintext-авторизация ):

  • telnet адрес_сервера 25 – подключаемся к серверу
  • ehlo
  • auth login
  • ZWxpbVM= – закодированный логин "elimS"
  • TXlQYXNzd29yZA== – закодированный пароль "MyPassword"
  • mail from:user@domain.com – ваш почтовый ящик, с которого отправляется письмо
  • rcpt to:mail@domain2.com – ящик на который отправляется письмо
  • data
  • subject:тема письма – не обязательная команда, если ее пропустить, то письмо будет без темы
  • тут печатаем текст письма
  • текст письма может быть из множества строк
  • конец письма заканчивается одной точкой в отдельной строке, так как в следующей строке:
  • .
  • quit – завершаем сеанс и выходит из telnet

И снова лог общения с сервером с пояснениями:

В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту.

Команда контент-менеджеров wikiHow тщательно следит за работой редакторов, чтобы гарантировать соответствие каждой статьи нашим высоким стандартам качества.

Почтовые клиенты, такие как Thunderbird и Outlook, сильно упрощают процесс отправки электронных писем. Во всяком случае до тех пор, пока ваше письмо не затеряется в сети. Хотите знать, что происходит, когда вы нажимаете "Отправить"? Тогда воспользуйтесь Telnet – небольшой утилитой, которая встраивается в систему и отправляет тестовые запросы с сервера вашего почтового сервиса. В этом случае вы узнаете об ошибке, о которой не сообщил ваш почтовый клиент.

Оцените статью
Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock detector