Открыть сервис

SMTP

SMTP (англ. Simple Mail Transfer Protocol — простой протокол передачи почты) — это сетевой протокол, предназначенный для передачи электронной почты в компьютерных сетях, в первую очередь в сети Интернет. SMTP является одним из ключевых протоколов прикладного уровня стека TCP/IP и используется для отправки сообщений от клиента на сервер, а также для пересылки писем между почтовыми серверами. Протокол определён в стандартах RFC 821 (1982 год) и его последующей версии RFC 5321 (2008 год).

История развития

Предпосылки создания

До появления SMTP в сети ARPANET использовались более ранние протоколы передачи сообщений, такие как FTP (File Transfer Protocol) для передачи почтовых файлов и протокол MTP (Mail Transfer Protocol), описанный в RFC 780. Эти решения имели ограничения по масштабируемости и не обеспечивали стандартизированного формата сообщений.

Появление SMTP

Первая версия SMTP была опубликована в 1982 году в RFC 821 Джонатаном Постелом (Jonathan Postel). Протокол базировался на принципах более раннего протокола MTP, но был упрощён и оптимизирован для работы в условиях гетерогенных сетей. SMTP стал первым стандартизированным протоколом для передачи почты, который поддерживал отправку сообщений между различными операционными системами и почтовыми программами.

Эволюция и расширения

В 1995 году вышло расширение ESMTP (Extended SMTP), описанное в RFC 1869, которое добавило возможность согласования дополнительных возможностей между серверами (например, аутентификация, шифрование, поддержка больших вложений). Основные расширения SMTP включают:

В 2008 году вышла обновлённая спецификация RFC 5321, которая заменила RFC 821 и объединила базовый SMTP с расширениями ESMTP.

Архитектура и принцип работы

Модель взаимодействия

SMTP работает по клиент-серверной модели. Взаимодействие происходит между тремя основными компонентами:

Процесс отправки письма

  1. Инициализация соединения: MUA (клиент) устанавливает TCP-соединение с MTA (сервером) на порт 25 (по умолчанию) или порт 587 (для отправки с аутентификацией). Для шифрованного соединения используется порт 465.
  2. Приветствие и идентификация: Сервер отправляет приветственное сообщение (код 220), клиент отвечает командой EHLO (или HELO для старых версий), указывая своё доменное имя.
  3. Отправка команд: Клиент последовательно отправляет команды:
  1. Завершение: После успешной передачи клиент отправляет команду QUIT, сервер подтверждает разрыв соединения.

Релейная передача (Relaying)

Если получатель находится на другом домене, MTA отправителя выступает в роли клиента по отношению к MTA получателя. Сервер отправителя устанавливает новое TCP-соединение с сервером получателя (обычно на порт 25) и передаёт письмо по тому же протоколу. Этот процесс называется релейной передачей (relaying). Для предотвращения злоупотреблений (например, рассылки спама) большинство MTA настроены только на релейную передачу для авторизованных пользователей или для доменов, за которые они отвечают.

Формат сообщений

SMTP не определяет формат содержимого письма, а только способ его передачи. Формат сообщений задаётся стандартом RFC 5322 (ранее RFC 822). Письмо состоит из двух частей:

Классификация и варианты использования

Основные типы

Альтернативные протоколы

Применение

SMTP является основой практически всей электронной почты в Интернете. Он используется:

Безопасность и ограничения

Уязвимости

SMTP изначально не предусматривал шифрования и аутентификации, что делало его уязвимым для перехвата и подделки писем. Основные угрозы:

Меры защиты

Ограничения протокола

SMTP не поддерживает:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →