ESMPT –это расширенная современная версия почтового протокола отправки сообщений SMTP (Extended SMTP). При установлении соединения тут применяется шифрование. И процесс отправки сообщений становиться более сложным чем в протоколе SMPT.
Первоначально необходимо установить безопасное соединение с сервером для этого используется openssl, который обычно есть в каждом сервере Linux
# openssl s_client -connect myserver.ru:465 -crlf
Произойдет установление соединения, вывод завершиться сообщением:
<…>
Start Time: 1700393590
Timeout : 7200 (sec)
Verify return code: 0 (ok)
Extended master secret: no
---
220 myserver.ru ESMTP CommuniGate Pro 6.4.0
Теперь нужно представиться серверу. Что бы не возникло ошибок представиться лучше публичным IP адресом, который используется для выхода в Интернет. Узнать свой публичный IP адрес можно обратившись на сайт https://2ip.ru/
EHLO 46.0.100.100
Сервер должен ответить списком допустимых команд:
250-myserver.ru is pleased to meet you
250-DSN
250-SIZE
250-AUTH LOGIN PLAIN
250-ETRN
250-TURN
250-ATRN
250-NO-SOLICITING
250-8BITMIME
250-HELP
250-PIPELINING
250-SMTPUTF8
250 EHLO
Далее запускаем процедуру аутентификации. После запуска процедуры, нужно будет ввести логин и пароль но не в простом обычном виде, а в закодированном по стандарту кодирования Base64. Свои логин и пароль можно закодировать по стандарту Base64 например на сайте: https://www.base64encode.org/
Пример:
AUTH LOGIN
334 VXNlcm5hbWU6
TXlVc2VyQG15c2VydmVyLnJ1 (мой логин MyUser@myserver.ru в Base64)
334 UGFzc3dvcmQ6
TXlTZWNyZXRQYXNzd29yZA== (мой пароль MySecretPassword в Base64)
235 myserver.ru relaying authenticated
Удачная аутентификация завершиться сообщением 235 relaying authenticated
Далее устанавливаем от кого будет написано письмо (адрес отправителя). Нужно отметить, что адрес отправителя не всегда соответствует логину. В данном случае нам нужно указать адрес электронной почты нашего логина.
MAIL FROM: <MyUser@myserver.ru>
Сервер должен ответить сообщением 250 sender accepted
Теперь нужно задать почтовый адрес получателя. Тут важно, что команда RCPT TO вводиться в нижнем регистре, так как символ «R» в начале строки в сессии openssl заставит openssl переконнектиться и адрес получателя установлен не будет
rcpt to: recipient_of_the_letter@yandex.ru
Типичный ответ сервера:
250 recipient_of_the_letter@yandex.ru will relay mail for an authenticated user
Далее вводиться ключевое слово DATA, после чего пользователю предлагается написать письмо и завершить сообщение точкой.
DATA
354 Enter mail, end with "." on a line by itself
Вначале письма обычно нужно еще раз написать адрес отправителя, адрес получателя, а так же тему письма.
После этого написать текст письма и в последней строке написать точки и нажать ENTER.
Например:
from: MyUser@myserver.ru
to: recipient_of_the_letter@yandex.ru
subject: test 2023-11-19
Это тестовое сообщение, отправленное из консоли Linux!!
Отправил Королев В.С.
.
Сервер ответит, что сообщение принято к отправке
250 204410 message accepted for delivery
Для разъединения соединения нужно набрать команду QUIT, сервер ответит DONE, после чего соединение разорвется.
QUIT
DONE
Комментариев нет:
Отправить комментарий