Вы никогда не пытались отправить письмо не используя для этого специализированное ПО(почтовые клиенты, 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, и пройти аутентификацию, представив свой логин и пароль от своей учётной записи почтового сервиса, я расскажу в продолжении данного топика.