Отправка почты используя директивы протокола SMTP
Вы никогда не пытались отправить письмо не используя для этого специализированное ПО(почтовые клиенты, sendmail и т.п.)? Если вам интересно, как отправлять письма не имея под рукой ПО для отправки писем - этот пост для вас.
Начнём с основ протокола SMTP. Для отправки почты нужно постучаться на smtp-сервер, если нужно - пройти аутентификацию, и собственно отправить письмо.
Самый простой способ сделать это - это использовать для отправки письма популярную утилиту telnet. Пользоваться ей довольно просто:
telnet адрес_smtp_сервера номер_порта
К примеру, так
telnet localhost 25
или так
telnet localhost 587
Теперь вам нужно представится. Набираем:
HELO имя_вашего_узла
Где HELO(или EHLO) - директива, позволяющая вам представиться серверу SMTP, а имя_вашего_узла(к примеру) - localhost.
Указываем, от кого письмо:
MAIL FROM: <адрес@отправителя>
Указываем адрес получателя:
RCPT TO: <адрес@получателя>
А теперь, собственно, само письмо:
DATA
from: "Имя Отправителя"адрес@отправителя
to: "Имя Получателя" адрес@получателя
subject: Тема нашего письма
Текст письма.
.
Всё, что между DATA и сигнализирующей о завершении ввода письма одинокой точки в отдельной строке - это наше послание. Оно должно содержать поля from, to и subject, и собственно текст письма. Для завершения сеанса связи наберите
QUIT
и нажмите на Enter. Всё, вы успешно отослали письмо. Правда, только если использовали в качестве smtp-сервера установленный локально smtp-сервер, или один из анонимных серверов. Большинство smtp-серверов требуют от своих клиентов аутентификацию по логину и паролю. А Gmail, и другие крупные почтовые сервисы, требуют установление безопасного соединения, зашифрованного с помощью протокола TLS. Как установить зашифрованное соединение, используя TLS, и пройти аутентификацию, представив свой логин и пароль от своей учётной записи почтового сервиса, я расскажу в продолжении данного топика.