Подавляющее большинство почтовых серверов не позволяют неаутентифицированным пользователям отправлять через себя письма. Open-relay сервер, т.е. сервер, позволяющий свободную пересылку почты, в интернет-сообществе считается дурным тоном, и вообще такие сервера по прошествии какого-то времени становятся источниками спама, и IP-адреса таких серверов быстро попадают в блек-листы всевозможных средств защиты от спама. В этот раз мы поговорим о том, как провести аутентификацию типа AUTH LOGIN из консоли telnet. На основании описанного способа можно запросто написать программу, которая выполняет все эти действия автоматически.
AUTH LOGIN – способ SMTP-аутентификации, в котором логин и пароль передаются в виде текста, закодированного по алгоритму Base64. Обратите внимание, что передавать свои логин и пароль таким образом далеко не безопасно! Итак, нам нужно для начала закодировать по алгоритму Base64 свой логин на почтовом сервере и пароль от него. Для этого воспользуемся языком Perl, а конкретнее – его модулем MIME::Base64.
$ perl -MMIME::Base64 -e 'print encode_base64("user\@server.ru");' dXNlckBzZXJ2ZXIucnU= $ perl -MMIME::Base64 -e 'print encode_base64("PASSWORD");' UEFTU1dPUkQ=
Получившиеся две строки копируем куда-нибудь в буфер обмена. Теперь мы готовы к аутентификации, поэтому запускаем SMTP-сессию через telnet (жирным шрифтом помечены наши команды):
$ telnet server.ru 25 Trying 95.169.186.213... Connected to server.ru. Escape character is '^]'. 220 server.ru ESMTP 2011 EHLO oioki.ru 250-server.ru 250-PIPELINING 250-SIZE 10240000 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
Сервер показывает список своих возможностей, мы же выберем метод AUTH LOGIN и введем закодированные логин и пароль. Обратите внимание, что логин и пароль он спрашивает также в Base64-закодированном виде:
AUTH LOGIN 334 VXNlcm5hbWU6 dXNlckBzZXJ2ZXIucnU= 334 UGFzc3dvcmQ6 UEFTU1dPUkQ=
Ответ сервера зависит от правильности введенных логина и пароля. В случае ошибки, вы увидите что-то вроде:
535 5.7.8 Error: authentication failed: UGFzc3dvcmQ6
Если же все нормально:
235 2.7.0 Authentication successful
Собственно, теперь можно отправить письмо нужному получателю, от своего имени:
MAIL FROM: user@server.ru 250 2.1.0 Ok RCPT TO: user@server2.ru 250 2.1.5 Ok DATA 354 End data with. Subject: Hello world! This is the test message... . 250 2.0.0 Ok: queued on as a8b0c5d3-aCbac1dx QUIT 221 2.0.0 Closing connection. Connection closed by foreign host.
Здравствуйте.
Попробовал подключиться с помощью Telnet, но подключения не происходит – висит и сбрасывает.
подключался “Telnet smtp.mail.ru 465” (порт 465 ,т.к. на сайте mail.ru указан он; хотя пробовал и 25).
Так почему же не подключаюсь?
На порту 465 работает SMTPS, т.е. SMTP, обёрнутый в SSL (аналогично HTTPS и HTTP).
Попробуйте подключиться вот так, из Linux:
openssl s_client -connect smtp.mail.ru:465
Wie mache ich ? 3000 pro Tag?: https://frama.link/BESTINVESTMETHOD55000638900
Проще проверить работу смтп сервера бесплатно и быстро тут
https://check.smtp.bz/
Натяжной потолок цена Киев здесь