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 включают:
- STARTTLS (RFC 3207) — шифрование соединения с помощью TLS/SSL.
- SMTP-AUTH (RFC 2554) — аутентификация клиента на сервере.
- 8BITMIME (RFC 1652) — поддержка передачи сообщений в кодировке MIME с 8-битными символами.
- DSN (Delivery Status Notification, RFC 1891) — уведомления о статусе доставки.
В 2008 году вышла обновлённая спецификация RFC 5321, которая заменила RFC 821 и объединила базовый SMTP с расширениями ESMTP.
Архитектура и принцип работы
Модель взаимодействия
SMTP работает по клиент-серверной модели. Взаимодействие происходит между тремя основными компонентами:
- Пользовательский агент (MUA — Mail User Agent) — почтовая программа (например, Outlook, Thunderbird, веб-интерфейс Gmail), которая создаёт и отправляет письма.
- Агент передачи почты (MTA — Mail Transfer Agent) — серверное программное обеспечение (например, Postfix, Sendmail, Exim), которое принимает, обрабатывает и пересылает сообщения.
- Агент доставки (MDA — Mail Delivery Agent) — компонент, который помещает письмо в почтовый ящик получателя на его сервере.
Процесс отправки письма
- Инициализация соединения: MUA (клиент) устанавливает TCP-соединение с MTA (сервером) на порт 25 (по умолчанию) или порт 587 (для отправки с аутентификацией). Для шифрованного соединения используется порт 465.
- Приветствие и идентификация: Сервер отправляет приветственное сообщение (код 220), клиент отвечает командой
EHLO(илиHELOдля старых версий), указывая своё доменное имя. - Отправка команд: Клиент последовательно отправляет команды:
MAIL FROM:— указание обратного адреса (отправителя).RCPT TO:— указание адреса получателя (может быть несколько).DATA— начало передачи тела письма (заголовки и содержимое). Завершается точкой на отдельной строке.
- Завершение: После успешной передачи клиент отправляет команду
QUIT, сервер подтверждает разрыв соединения.
Релейная передача (Relaying)
Если получатель находится на другом домене, MTA отправителя выступает в роли клиента по отношению к MTA получателя. Сервер отправителя устанавливает новое TCP-соединение с сервером получателя (обычно на порт 25) и передаёт письмо по тому же протоколу. Этот процесс называется релейной передачей (relaying). Для предотвращения злоупотреблений (например, рассылки спама) большинство MTA настроены только на релейную передачу для авторизованных пользователей или для доменов, за которые они отвечают.
Формат сообщений
SMTP не определяет формат содержимого письма, а только способ его передачи. Формат сообщений задаётся стандартом RFC 5322 (ранее RFC 822). Письмо состоит из двух частей:
- Заголовки (headers) — служебные поля, такие как
From:,To:,Subject:,Date:,Message-ID:. Каждый заголовок начинается с имени поля, двоеточия и значения. - Тело (body) — собственно содержимое письма, отделённое от заголовков пустой строкой. Для передачи вложений и не-ASCII символов используется расширение MIME (Multipurpose Internet Mail Extensions, RFC 2045–2049).
Классификация и варианты использования
Основные типы
- SMTP для отправки (submission) — используется клиентами (MUA) для отправки писем на сервер. Обычно работает на порту 587 с обязательной аутентификацией.
- SMTP для релейной передачи (relay) — используется между серверами (MTA) для пересылки писем. Работает на порту 25, часто без аутентификации, но с проверкой домена отправителя.
- SMTP с шифрованием (SMTPS) — устаревший вариант, использующий порт 465 и TLS с самого начала соединения. В современных системах заменён на STARTTLS.
Альтернативные протоколы
- POP3 (Post Office Protocol) — протокол для получения писем с сервера (загрузка на локальный компьютер).
- IMAP (Internet Message Access Protocol) — протокол для синхронизации почты между сервером и клиентом (позволяет работать с письмами на сервере).
- HTTP/HTTPS — используется веб-интерфейсами почтовых сервисов (например, Gmail, Яндекс.Почта) для отправки писем через API.
Применение
SMTP является основой практически всей электронной почты в Интернете. Он используется:
- Почтовыми серверами (например, Яндекс.Почта, Mail.ru, Gmail) для приёма и пересылки писем.
- Веб-приложениями для отправки уведомлений, подтверждений регистрации, рассылок (через SMTP-серверы).
- Корпоративными почтовыми системами (Microsoft Exchange, CommuniGate Pro) для внутренней и внешней переписки.
- Спам-фильтрами и системами безопасности для анализа и блокировки нежелательных сообщений на основе заголовков и маршрута передачи.
Безопасность и ограничения
Уязвимости
SMTP изначально не предусматривал шифрования и аутентификации, что делало его уязвимым для перехвата и подделки писем. Основные угрозы:
- Перехват трафика (сниффинг) — чтение содержимого письма при передаче по незащищённому каналу.
- Спам — массовая рассылка нежелательных сообщений через открытые релеи (open relays).
- Подделка отправителя (email spoofing) — отправка писем с подставного обратного адреса.
- Фишинг — мошеннические письма, имитирующие легитимные сервисы.
Меры защиты
- SPF (Sender Policy Framework) — проверка, что сервер отправителя имеет право отправлять письма от имени данного домена.
- DKIM (DomainKeys Identified Mail) — цифровая подпись письма, подтверждающая его целостность и подлинность.
- DMARC (Domain-based Message Authentication, Reporting & Conformance) — политика обработки писем, не прошедших проверку SPF/DKIM.
- TLS/SSL — шифрование канала передачи (STARTTLS или SMTPS).
- Аутентификация SMTP-AUTH — требование логина и пароля для отправки писем через сервер.
Ограничения протокола
SMTP не поддерживает:
- Отправку сообщений в реальном времени (письма могут задерживаться на серверах).
- Гарантированную доставку (сообщение может быть отклонено или потеряно без уведомления).
- Работу с бинарными данными напрямую (требуется кодировка MIME).
- Подтверждение прочтения (эта функция реализуется на уровне приложений, а не протокола).
Интересные факты
- SMTP использует текстовые команды (ASCII), что упрощает отладку и тестирование вручную с помощью Telnet.
- Первое электронное письмо было отправлено в 1971 году Рэем Томлинсоном (Ray Tomlinson) по протоколу SNDMSG, предшественнику SMTP.
- В 2020-х годах доля спама в мировом почтовом трафике составляла, по разным оценкам, от 40% до 60%, что стимулировало развитие антиспам-технологий.
- Стандартный порт 25 часто блокируется интернет-провайдерами для предотвращения работы открытых релеев и рассылки спама с домашних компьютеров.
Источники
- RFC 5321 — Simple Mail Transfer Protocol (2008)
- RFC 821 — Simple Mail Transfer Protocol (1982)
- RFC 1869 — SMTP Service Extensions (1995)
- RFC 3207 — SMTP Service Extension for Secure SMTP over Transport Layer Security (2002)
- RFC 5322 — Internet Message Format (2008)
- Книга: Д. Костромин, «Электронная почта в Интернете: протоколы и программы», 2005
- Материалы сайта IETF (Internet Engineering Task Force)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →