Как устроена электронная почта: SMTP, IMAP и POP3?
DNS, WebSocket и другие протоколы
SMTP доставляет письма от клиента до почтового сервера и между серверами, а IMAP и POP3 забирают письма из ящика: IMAP синхронизирует ящик на сервере, POP3 скачивает его и обычно очищает.
Путь письма
- Клиент отправляет письмо своему серверу по SMTP submission с аутентификацией: порт 587 со STARTTLS или 465 с неявным TLS.
- Сервер отправителя ищет в DNS MX-записи домена получателя.
- Передаёт письмо по SMTP на порт 25 сервера получателя.
- Письмо ложится в ящик, клиент получателя забирает его по IMAP или POP3.
IMAP против POP3
- IMAP (143, с TLS — 993): письма и папки живут на сервере, флаги прочтения синхронны на всех устройствах, можно тянуть только заголовки, команда IDLE даёт push.
- POP3 (110, с TLS — 995): скачать и, как правило, удалить с сервера. Прост, но с несколькими устройствами неудобен.
Защита от подделки
- SPF — TXT-запись со списком серверов, которым разрешено слать почту от домена.
- DKIM — подпись заголовков и тела, публичный ключ лежит в DNS.
- DMARC — политика при провале проверок (none, quarantine, reject) и отчёты. С 2024 года Gmail и Yahoo требуют всё это от массовых отправителей.
Коротко для собеседования
Отправка всегда идёт по SMTP, а чтение — по IMAP, если нужна синхронизация между устройствами, или по POP3 для простой выгрузки. Чтобы письма приложения не попадали в спам, домену нужны SPF, DKIM и DMARC, а надёжнее всего слать через транзакционный сервис.