Электронная почта (email) — это система обмена текстовыми сообщениями между пользователями через компьютерные сети, где письмо проходит цепочку серверов от отправителя к получателю по стандартным протоколам. Это не одна программа, а связка из адреса, почтовых агентов и протоколов.
Содержание
- Мини-словарь: что не путать
- Адрес электронной почты
- Кто участвует в доставке: MUA, MTA, MDA
- Протоколы: SMTP для отправки, IMAP и POP3 для получения
- DNS и запись MX: как сервер находит получателя
- Путь письма пошагово
- Защита от подделки: SPF, DKIM, DMARC
- Безопасность почты
- Выводы
- Где применяется / связь с практикой
- FAQ
Ниже разберем адрес и участников доставки (MUA, MTA, MDA), различие протоколов отправки и получения (SMTP против IMAP и POP3), роль DNS-записи MX и защиту от подделки писем (SPF, DKIM, DMARC). В центре — пошаговая схема пути письма.
Мини-словарь: что не путать
У темы есть группа близких понятий, которые легко смешать. Развожу их сразу, дальше держу это различие:
- MUA — почтовый клиент, которым пользуется человек (Thunderbird, веб-интерфейс Gmail).
- MTA — сервер, который пересылает письмо между доменами по SMTP (Postfix, Exim).
- MDA — компонент, который кладет доставленное письмо в ящик получателя.
- SMTP — протокол отправки и пересылки писем (push).
- IMAP / POP3 — протоколы получения писем клиентом с сервера (pull).
Адрес электронной почты
Адрес состоит из двух частей, разделенных символом @: локальная часть до @ и домен после. В bob@example.com локальная часть bob идентифицирует ящик, а example.com — домен, обслуживающий почту.
Локальную часть трактует принимающий сервер: он решает, куда положить письмо. Домен нужен отправляющей стороне, чтобы через DNS найти сервер получателя. Домен в адресе — это не имя конкретной машины, а точка входа: за него могут отвечать несколько серверов.
Кто участвует в доставке: MUA, MTA, MDA
Письмо обрабатывает не одна программа, а несколько агентов, у каждого своя роль.
MUA (Mail User Agent) — клиент, где человек пишет и читает письма. Он не общается с чужими серверами напрямую: свое письмо он сдает первому серверу.
MTA (Mail Transfer Agent) — сервер пересылки. Он принимает письмо, находит сервер домена получателя и передает письмо дальше по SMTP, при необходимости через промежуточные релеи.
MDA (Mail Delivery Agent) — финальный компонент на стороне получателя: раскладывает принятое письмо в конкретный почтовый ящик (например, в формат Maildir).
Уточнение к упрощению: приемом исходящего письма от клиента часто занимается отдельная роль MSA (Mail Submission Agent) на порту 587. В небольших системах MSA и MTA — один и тот же сервер, поэтому дальше для краткости говорю «MTA отправителя», подразумевая submission.
Протоколы: SMTP для отправки, IMAP и POP3 для получения
Ключевое различие: SMTP толкает письмо вперед (отправка и пересылка), а IMAP и POP3 забирают уже доставленные письма с сервера в клиент. Это разные задачи, их не взаимозаменяют.
IMAP и POP3 тоже различаются. IMAP держит письма и структуру папок на сервере и синхронизирует состояние между устройствами. POP3 в классическом режиме скачивает письма в один клиент, а на сервере по умолчанию их не оставляет (это поведение настраивается опцией «оставлять копию»).
| Протокол | Задача | Направление | Типовые порты | Особенность |
|---|---|---|---|---|
| SMTP | Отправка и пересылка | Клиент -> сервер, сервер -> сервер | 587 (submission), 25 (между MTA), 465 (implicit TLS) | Не хранит и не показывает входящие |
| IMAP | Получение | Сервер -> клиент | 143, 993 (TLS) | Письма и папки живут на сервере, синхронизация устройств |
| POP3 | Получение | Сервер -> клиент | 110, 995 (TLS) | Скачивает письма, по умолчанию ориентирован на одно устройство |
Практический вывод по выбору: несколько устройств и веб-доступ — IMAP; одно устройство и желание держать архив локально — POP3.
DNS и запись MX: как сервер находит получателя
Чтобы доставить письмо на example.com, MTA отправителя спрашивает у DNS запись MX (Mail Exchanger) этого домена. MX указывает имя почтового сервера и его приоритет числом: чем меньше число, тем выше приоритет.
dig MX example.com +short
Вывод (пример):
10 mail.example.com.
20 backup-mail.example.com.
Здесь основной сервер — mail.example.com (приоритет 10), а backup-mail.example.com (20) — резервный на случай недоступности основного. Имя из MX MTA дополнительно разрешает в IP через записи A/AAAA и подключается к нему.
Граница модели: если MX-записи у домена нет, стандарт SMTP (RFC 5321) разрешает доставку на адрес из записи A/AAAA самого домена (это называют неявным MX). Поэтому отсутствие MX не всегда означает, что почта не принимается.
Путь письма пошагово
Соберем участников в одну сквозную схему — от нажатия «Отправить» до появления письма у получателя.
[MUA отправителя]
| SMTP submission, порт 587 (TLS + аутентификация)
[MTA отправителя] --- запрос DNS MX домена получателя ---> DNS
| SMTP, порт 25 (пересылка между серверами, возможны релеи)
[MTA получателя]
| проверка SPF / DKIM / DMARC, антиспам-фильтры
[MDA]
| раскладка в почтовый ящик
[ящик на сервере получателя]
| IMAP, порт 993 или POP3, порт 995
[MUA получателя]
Разбор по шагам:
- Пользователь пишет письмо в MUA и нажимает «Отправить».
- MUA сдает письмо своему серверу по SMTP submission (порт 587), с аутентификацией и шифрованием.
- MTA отправителя запрашивает у DNS MX-запись домена получателя и выбирает сервер с наибольшим приоритетом.
- MTA отправителя соединяется с MTA получателя по SMTP (порт 25) и передает письмо; на пути возможны промежуточные релеи.
- MTA получателя проверяет отправителя (SPF, DKIM, DMARC) и прогоняет письмо через антиспам.
- MDA раскладывает принятое письмо в почтовый ящик адресата.
- MUA получателя забирает письмо по IMAP (порт 993) или POP3 (порт 995) и показывает его.
Так выглядит диалог SMTP на шаге 4 (строки клиента помечены C:, сервера — S:):
S: 220 mail.example.com ESMTP Postfix
C: EHLO client.example.org
S: 250-mail.example.com
S: 250 STARTTLS
C: MAIL FROM:<alice@example.org>
S: 250 2.1.0 Ok
C: RCPT TO:<bob@example.com>
S: 250 2.1.5 Ok
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: alice@example.org
C: To: bob@example.com
C: Subject: Privet
C:
C: Tekst pisma.
C: .
S: 250 2.0.0 Ok: queued
Обратите внимание: адрес в MAIL FROM (конверт письма, он же Return-Path) и адрес в заголовке From:, который видит человек, — это разные поля. На этом различии строится проверка подлинности.
Защита от подделки: SPF, DKIM, DMARC
SMTP сам по себе не проверяет, что отправитель имеет право слать письма от имени домена. Поэтому поверх него работают три DNS-механизма. Их публикуют как TXT-записи в DNS домена-отправителя.
| Механизм | Что проверяет | Где хранится | Что дает |
|---|---|---|---|
| SPF | IP отправляющего сервера против списка разрешенных для домена конверта (Return-Path) | TXT в корне домена | Отсекает рассылку с чужих серверов |
| DKIM | Криптографическую подпись части заголовков и тела письма | TXT в <селектор>._domainkey.<домен> |
Подтверждает домен-подписант и целостность письма |
| DMARC | Согласование (alignment) результата SPF/DKIM с видимым заголовком From: и задает политику |
TXT в _dmarc.<домен> |
Говорит приемнику, что делать при провале, и куда слать отчеты |
Примеры записей:
example.com. TXT "v=spf1 ip4:203.0.113.10 include:_spf.provider.com -all"
sel1._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3..."
_dmarc.example.com. TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; adkim=s; aspf=s"
Как читать: -all в SPF — жесткий запрет для не перечисленных серверов (~all — мягкий, помечать как подозрительное). В DKIM сервер подписывает письмо закрытым ключом, а приемник проверяет подпись открытым ключом из DNS. В DMARC p=quarantine — отправлять непрошедшие письма в спам (p=reject — отклонять, p=none — только наблюдать).
Важное различие: SPF проверяет домен из конверта (Return-Path), а DMARC требует, чтобы прошедший SPF или DKIM домен совпадал с видимым From:. Именно поэтому один SPF не защищает от подделки адреса в поле «От кого» — подделку закрывает связка с DMARC.
Безопасность почты
Транспорт защищают шифрованием TLS: implicit TLS (сразу зашифрованное соединение, например порт 993/995/465) или STARTTLS (переход на шифрование внутри уже открытого соединения). TLS закрывает канал, но не содержимое от самих серверов — для сквозного шифрования тела нужны отдельные средства (PGP или S/MIME).
Со стороны пользователя базовая гигиена: сложный уникальный пароль, двухфакторная аутентификация, отдельные пароли приложений для старых клиентов, недоверие к письмам, требующим срочно перейти по ссылке или ввести пароль. SPF/DKIM/DMARC снижают подделку адреса, но фишинг с похожего домена они не отменяют — адрес отправителя всегда стоит читать целиком.
Выводы
- Электронная почта — это связка адреса, агентов (MUA, MTA, MDA) и протоколов, а не одна программа.
- Отправку и пересылку выполняет SMTP; получение письма клиентом — IMAP (синхронизация на сервере) или POP3 (скачивание в один клиент).
- Сервер отправителя находит сервер получателя через DNS-запись MX по приоритету; при отсутствии MX используется запись A/AAAA домена.
- Путь письма: MUA -> SMTP submission -> MTA отправителя -> DNS MX -> SMTP порт 25 -> MTA получателя -> MDA -> ящик -> IMAP/POP3 -> MUA получателя.
- Подделку отправителя ограничивают SPF (IP конверта), DKIM (подпись) и DMARC (согласование с видимым From и политика реакции).
Где применяется / связь с практикой
Понимание пути письма — базовый навык для тех, кто настраивает и обслуживает сети и серверы: DNS-записи MX, маршрутизация SMTP, порты и TLS, диагностика недоставки. Эти же темы (DNS, TCP-порты, протоколы прикладного уровня, защита трафика) — ядро работы сетевого инженера.
Освойте тему на практике
Разобраться в этом системно и на практике помогает курс Сетевой инженер: там сети и протоколы разбирают на стендах, а не только в теории. Оценить формат и уровень до старта можно на открытых уроках — бесплатных занятиях по сетям и инфраструктуре.
FAQ
Почему письмо ушло, но получатель его не видит?
Частая причина — фильтрация на стороне получателя: провал SPF/DKIM/DMARC или антиспам отправили письмо в спам либо отклонили. Стоит проверить DNS-записи домена отправителя и заголовки доставки (Received, Authentication-Results).
Можно ли отправить письмо без DNS-записи MX у получателя?
Да. По стандарту SMTP при отсутствии MX доставка идет на IP из записи A/AAAA домена (неявный MX). Но для надежной почты MX-запись все же настраивают явно.
В чем разница между портами 25, 587 и 465?
Порт 25 — для пересылки между серверами (MTA -> MTA). Порт 587 — для отправки письма клиентом с аутентификацией (submission). Порт 465 — тоже submission, но со сразу зашифрованным соединением (implicit TLS).



