Что такое SMTP? Определение и основы

Если вы считаете электронную почту электронной почтой, то SMTP — это почтальон. Без стандартного сетевого протокола Интернета отправка прикладных документов, электронных открыток и смешных видеороликов с кошками была бы невозможна. Это происходит потому, что когда вы отправляете электронное письмо, оно не просто попадает непосредственно к получателю, а проходит через сложный коммуникационный процесс с многочисленными инстанциями, прежде чем достигнет адресата.

Что такое протокол SMTP?

SMTP расшифровывается как «простой протокол передачи почты». Это ориентированный на соединение, текстовый сетевой протокол из семейства интернет-протоколов, расположенный на седьмом уровне модели OSI: прикладном уровне. Как и любой другой сетевой протокол, он содержит правила для правильного взаимодействия между компьютерами в сети. SMTP отвечает за подачу и пересылку электронных писем от отправителя к получателю.

С момента своего выпуска в 1982 году в качестве преемника «Протокола почтового ящика» в Arpanet, SMTP стал стандартным протоколом для отправки электронной почты. Однако для рядового потребителя протокол SMTP остается практически незаметным, поскольку соответствующая программа электронной почты выполняет его в фоновом режиме. Если программа, приложение веб-почты в браузере или мобильное почтовое приложение не определяют протокол SMTP автоматически при настройке учетной записи, вам придется настроить его вручную, чтобы обеспечить бесперебойную передачу электронной почты.

Факт

Sendmail был одним из первых агентов передачи почты (MTA), который поддерживал протокол SMTP.

Ниже приведен обзор адресов SMTP-серверов и SMTP-портов для некоторых наиболее популярных поставщиков услуг электронной почты.

Поставщик электронной почты Адрес SMTP-сервера SMTP-порт  
Yahoo smtp.mail.yahoo.com 465  
AOL smtp.aol.com 587  
Outlook smtp.live.com 587  
Gmail smtp.gmail.com 587 (TLS/STARTTLS), 465 (SSL)  

Как работает SMTP?

Чтобы понять протокол SMTP, сначала нужно понять, что такое электронная почта. Вот как это работает:

  1. SMTP-клиент, то есть отправитель, загружает электронное письмо на SMTP-сервер, то есть сервер исходящей почты соответствующего поставщика услуг электронной почты. Это делается через приложение веб-почты в браузере или программу электронной почты (технически называемую «Mail User Agent», сокращенно MUA), например, Windows Live Mail или Mozilla Thunderbird.
  2. Затем SMTP-сервер связывается с DNS-сервером, и этот сервер ищет IP-адрес целевого SMTP-сервера (также называемого «Mail Delivery Agent», сокращенно MDA), который хранится для адреса получателя электронного письма.
  3. SMTP-сервер отправляет электронное письмо на целевой SMTP-сервер через один или несколько «Агентов передачи почты» (MTA). Каждый из этих процессов пересылки работает в соответствии с протоколом SMTP.
  4. Целевой SMTP-сервер временно сохраняет электронное сообщение в хранилище сообщений.
  5. Получающий MUA загружает электронное сообщение либо через IMAP, либо через POP3.

Как работает SMTP-сессия?

Взаимодействие между SMTP-клиентом и SMTP-сервером, упомянутое в первом шаге процедуры SMTP, представляет собой фактическую SMTP-сессию. Остальная часть процедуры SMTP, т.е. пересылка электронного письма по протоколу SMTP от сервера к получателю, рассматривается в отдельной статье. Каждый сеанс состоит из последовательности команд SMTP от клиента и ответов в виде кодов состояния от сервера.

Обзор команд SMTP

Согласно применимым спецификациям SMTP, каждая реализация сетевого протокола должна поддерживать, по крайней мере, следующие восемь команд, состоящих из 7-битных символов ASCII:

Команда SMTP Значение  
HELO «Привет.»- клиент входит в систему под именем своего компьютера и начинает сеанс.  
MAIL FROM Клиент называет имя отправителя электронной почты  
RCPT TO «Получатель» — клиент называет получателя электронного письма  
ДАННЫЕ Клиент инициирует передачу электронного сообщения  
RSET Клиент завершает инициированную передачу, но сохраняет соединение между клиентом и сервером  
VRFY/EXPN «Verify»/»Expand» — клиент проверяет, доступен ли почтовый ящик для передачи сообщений.  

Обзор кодов состояния сервера

Сервер отвечает на каждую из этих SMTP-команд клиента трехзначным кодом статуса, включая текстовое сообщение:

Код состояния Обычное текстовое сообщение  
  Коды состояния, указывающие на то, что сервер успешно выполнил команду:  
200 (Нестандартный успех)  
211 Ответ о состоянии системы или системной помощи  
214 Справочное сообщение  
220 Сервер готов к сеансу SMTP  
221 Сервер завершает соединение  
250 Запрошенное почтовое действие ОК, выполнено  
251 Пользователь не локальный; почта пересылается  
252 Невозможно проверить (VRFY) пользователя, но он примет сообщение и попытается его доставить  
253 Ожидающие сообщения для запущенного узла  
  Коды состояния, указывающие на то, что сервер понял команду, но требует дополнительной информации для обработки:  
354 Сервер начинает ввод почты  
  Коды состояния, указывающие на то, что сервер обнаружил временную ошибку, но команда все еще может быть обработана:  
421 Сервер недоступен, соединение прервано  
450 Команда не выполнена, почтовый ящик недоступен  
451 Запрошенное действие прервано: локальная ошибка при обработке  
452 Запрошенное действие не выполнено: недостаточно системного хранилища  
  Коды состояния, указывающие на то, что сервер обнаружил фатальную ошибку и команда не может быть обработана:  
500 Ошибка синтаксиса, команда не распознана  
501 Синтаксическая ошибка в параметрах или аргументах  
502 Команда не выполнена  
503 Неправильная последовательность команд  
504 Параметр команды не реализован  
521 Сервер не принимает почту  
530 Доступ запрещен; требуется аутентификация  
550 Запрошенное действие не выполнено: почтовый ящик недоступен  
551 Пользователь не локальный; пожалуйста, попробуйте прямой путь  
552 Запрошенное почтовое действие отменено: превышен объем выделенного хранилища  
553 Запрошенное действие не выполнено: имя почтового ящика не разрешено  
554 Транзакция не выполнена  

Пример сеанса SMTP

Пример SMTP-сессии между клиентом и сервером может быть следующим:

Каковы недостатки протокола SMTP?

Недостатком протокола SMTP является то, что пользователи не проверяются при установлении соединения, что означает, что отправитель электронного письма может не заслуживать доверия. В результате открытые SMTP-реле часто используются для массовой рассылки спама. Спамеры используют поддельные адреса отправителей, чтобы их нельзя было отследить (подмена почты). Сегодня существует множество технологий безопасности, позволяющих предотвратить злоупотребление SMTP-серверами. Например, подозрительные письма отклоняются или перемещаются в карантин (папку спама). Для этого может использоваться протокол идентификации DomainKeys (DK), Sender Policy Framework (SPF) или greylisting. Кроме того, более или менее стандартным стало получение электронной почты не только через традиционный порт 25/TCP, но и через порт 587/TCP, так что передача разрешена только для проверенных пользователей.

Что такое ESMTP?

В ответ на проблему спама в Интернете в 1995 году было выпущено расширение SMTP: расширенный SMTP (сокращенно ESMTP). Оно добавляет в протокол дополнительные команды в 8-битовом коде ASCII, позволяя использовать множество новых функций для экономии пропускной способности и защиты серверов. К ним относятся, например, следующие:

  • аутентификация отправителя
  • SSL-шифрование электронных писем
  • Возможность прикрепления мультимедийных файлов к электронным письмам
  • Ограничения на размер электронных писем в соответствии со спецификациями сервера
  • Одновременная передача нескольким получателям
  • Стандартизированные сообщения об ошибках в случае недоставки.

И наконец, вот несколько примеров команд ESMTP:

Команда ESMTP Значение  
EHLO Альтернатива «HELO» в расширенном протоколе. Клиент входит в систему под именем своего компьютера и начинает сеанс. Если сервер поддерживает ESMTP, сеанс будет успешно запущен. В противном случае клиент должен использовать SMTP.  
8BITMIME Клиент просит сервер разрешить использование 8-битного набора символов ASCII в тексте сообщения.  
SIZE Клиент предлагает серверу указать максимально допустимый размер письма в байтах.  
STARTTLS Клиент спрашивает, поддерживает ли сервер шифрование TLS.  

Оцените статью
cdelat.ru
Добавить комментарий