Тематические термины: SMTP, telnet
При помощи данных команд удобно тестировать работу почтовых серверов.
Проще всего подключиться к почтовому серверу из командной строки Linux:
telnet <адрес сервера> 25
или программы Putty:
Мы должны увидеть ответ сервера с кодом 220 (готовность к работе), например:
220 relay.admins24.com ESMTP Postfix
Приветствуем сервер:
helo domain.local
В ответ получаем встречное приветствие с кодом 250, например, 250 relay.admins24.com.
Вводим адрес, от которого будем отправлять сообщение:
mail from:[email protected]
В ответ должны получить 250 2.1.0 Ok.
На какой адрес отправляем сообщение:
rcpt to:[email protected]
Получаем ответ 250 2.1.5 Ok.
Вводим команду:
Получим 354 End data with <CR><LF>.<CR><LF> — это означает, что можно вводить текст сообщения:
subject:test subject
Чтобы закончить, с новой строки ставим точку и нажимаем Enter:
В ответ должны увидеть что-то подобное: 250 2.0.0 Ok: queued as A340FC4B70C, где последний код — идентификатор сообщения, присвоенный сервером.
Сообщение отправлено.
Итоговая картина:
502 5.5.2 Error: command not recognizedhelo domain.local250 relay.admins24.commail from:[email protected]250 2.1.0 Okrcpt to:[email protected]250 2.1.5 Okdata354 End data with <CR><LF>.<CR><LF>subject:test subjecttest text.250 2.0.0 Ok: queued as A5E60C4B70C
Если почтовый сервер требует аутентификацию, необходимо сначала авторизоваться в системе.
Для этого вместо или после приветствия вводим:
* EHLO — расширенное приветствие, которое позволит получить возможности почтового сервера.
В ответ мы получаем, примерно, следующее:
250-relay.admins24.com Hello [192.168.0.15]250-SIZE 10485760250-PIPELINING250-DSN250-ENHANCEDSTATUSCODES250-X-ANONYMOUSTLS250-AUTH LOGIN PLAINT250-X-EXPS GSSAPI NTLM250-8BITMIME250-BINARYMIME250-CHUNKING250-XEXCH50250-XRDST250 XSHADOW
* в списке мы можем увидеть разные методы аутентификации (перечислены после AUTH).
Данные авторизации передаются в закодированном виде с использованием стандарта Base64.
Чтобы закодировать свои логин и пароль, можно воспользоваться одним из перечисленных способов ниже.
1. Powershell:
[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(«текст»))
2. Perl:
perl -MMIME::Base64 -e ‘print encode_base64(«текст»);’
3. Онлайн:
На веб-сайте base64.ru
При данном методе мы по очереди передаем закодированные логин и пароль.
После приветствия вводим:
AUTH LOGIN
В ответ получаем:
334 VXNlcm5hbWU6
После этого отправляем логин в base64, например admins24:
Получим ответ:
334 UGFzc3dvcmQ6
И вводим пароль (password):
cGFzc3dvcmQ=
Если аутентификация прошла успешно, увидим:
235 2.0.0 Authentication successful
Данный метод аутентификации отличается от вышеописанного тем, что логин с паролем передаются одной строкой. Base64 для них получаем следующей командой, например, в Powershell:
[System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(«\0username\0password»))
* где username и password — логин и пароль для аутентификации; \0 — нулевой байт.
Авторизовываемся:
AUTH PLAIN
XDAwdXNlclxAZG9tYWluLnJ1XDAwcGFzc3dvcmQ=
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies