SMTP используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Данные передаются при помощи TCP, при этом используется порт 25 или 587.
Чтобы доставить сообщение до адресата, необходимо переслать его почтовому серверу домена, в котором находится адресат. Для этого используется запись типа MX (англ. Mail eXchange — обмен почтой) системы DNS.
Широкое распространение SMTP получил в начале 1980-х годов. До него использовался протокол UUCP, который требовал от отправителя знания полного маршрута до получателя и явного указания этого маршрута в адресе получателя, либо наличия прямого коммутируемого или постоянного соединения между компьютерами отправителя и получателя.
Sendmail был одним из первых (если не первым) агентом отправки сообщений, который начал работать с SMTP. В 2001 уже как минимум 50 программ умели работать с этим протоколом как клиенты (отправка сообщений) или серверы (получение сообщений) . В настоящее время этот протокол является стандартным для электронной почты и его используют все клиенты и серверы.
Протокол был разработан для передачи только текста в кодировке ASCII, кроме того, первые спецификации требовали обнуления старшего бита каждого передаваемого байта. Это не даёт возможности отсылать текст на национальных языках (например, кириллице) , а также отправлять двоичные файлы (такие как изображения, видеофайлы, программы или архивы) . Для снятия этого ограничения был разработан стандарт MIME, который описывает способ преобразования двоичных файлов в текстовые. В настоящее время большинство серверов поддерживают 8BITMIME, позволяющий отправлять двоичные файлы так же просто, как текст.
Сервер SMTP — это конечный автомат с внутренним состоянием. Команды SMTP относительно просты, представляют из себя слова длиной 4 символа, почти все имеют параметры.
Для приёма почты почтовый клиент должен использовать протоколы POP3 или IMAP.
SMTP — расширяемый протокол. При установлении соединения сервер объявляет о наборе поддерживаемых расширений (в качестве ответа на команду EHLO). Соответствующие расширения могут быть использованы клиентом при работе.
ru.wikipedia.org