Почтовый сервер: что это, как устроен и зачем нужен
Почтовый сервер (mail server) - это программа или набор программ, которые принимают, хранят, пересылают и отдают электронную почту. Когда вы отправляете письмо с ivan@firma.ru на olga@partner.com, оно проходит как минимум через два почтовых сервера: один на стороне отправителя, второй на стороне получателя.
Почтовый сервер - не одна монолитная программа. Это архитектура из нескольких компонентов, каждый из которых решает свою задачу. Понимание этой архитектуры помогает разбираться в проблемах доставляемости, настраивать DNS-записи и правильно интерпретировать ошибки при валидации email-адресов.
Три ключевых компонента
Классическая почтовая система состоит из трёх частей: MTA, MDA и MUA. Разберём каждый.
MTA - Mail Transfer Agent
Агент пересылки. Это ядро почтового сервера. MTA принимает письмо от отправителя (или от другого MTA), определяет маршрут по MX-записям DNS и передаёт сообщение дальше. Популярные MTA: Postfix, Exim, Microsoft Exchange, Sendmail. MTA «разговаривает» по протоколу SMTP и работает на порту 25 (для межсерверного обмена) или на портах 587/465 (для приёма от клиентов).
MDA - Mail Delivery Agent
Агент локальной доставки. Когда MTA получил письмо, предназначенное для локального пользователя, он передаёт его MDA. Задача MDA - положить сообщение в конкретный почтовый ящик: в формате Maildir, mbox или в базу данных. Примеры MDA: Dovecot (он же используется для IMAP/POP3), Procmail, Sieve. MDA также выполняет фильтрацию: сортировку по папкам, проверку через SpamAssassin, правила пользователя.
MUA - Mail User Agent
Почтовый клиент. Это то, с чем работает конечный пользователь: Thunderbird, Outlook, Apple Mail, веб-интерфейс Gmail. MUA не является частью сервера напрямую, но именно через MUA пользователь отправляет и читает почту. Клиент подключается к серверу по IMAP или POP3 для чтения, и по SMTP для отправки.
Путь письма: от отправителя до получателя
Допустим, Иван отправляет письмо Ольге. Вот что происходит:
- MUA Ивана (Thunderbird) подключается к MTA его почтового сервера (smtp.firma.ru) по SMTP на порт 587 с авторизацией.
- MTA firma.ru запрашивает DNS: какая MX-запись у домена partner.com? Получает ответ: mx.partner.com с приоритетом 10.
- MTA firma.ru открывает SMTP-соединение на порт 25 сервера mx.partner.com и передаёт письмо.
- MTA partner.com проверяет SPF, DKIM, DMARC. Если всё в порядке, передаёт письмо локальному MDA.
- MDA кладёт сообщение в ящик Ольги. Если настроен SpamAssassin, письмо сначала проходит через фильтр.
- Ольга открывает Outlook, который по IMAP забирает письмо с сервера.
Типы почтовых серверов
В зависимости от задач серверы делятся на несколько типов:
- Входящий сервер (inbound) - принимает почту для домена. На него указывают MX-записи. Проверяет аутентификацию, фильтрует спам, доставляет в ящики.
- Исходящий сервер (outbound) - отправляет почту наружу. Работает как SMTP relay. Может быть собственным (Postfix на VPS) или облачным (SendGrid, Amazon SES).
- Relay-сервер - промежуточное звено. Принимает письмо от одного MTA и передаёт другому. Часто используется в корпоративных сетях для централизованной фильтрации.
- Шлюз (email gateway) - стоит перед основным сервером. Занимается безопасностью: антиспам, антивирус, DLP.
DNS-записи, необходимые почтовому серверу
Чтобы почтовый сервер работал корректно, в DNS домена должны быть настроены несколько записей:
- MX-запись - указывает, какой сервер принимает почту для домена. Без MX-записи письма не дойдут.
- A-запись - связывает имя сервера с IP-адресом. MX-запись ссылается на имя хоста, а A-запись разрешает его в IP.
- PTR-запись - обратная DNS. Позволяет по IP определить имя сервера. Многие почтовые системы отклоняют письма от серверов без PTR.
- SPF, DKIM, DMARC - записи аутентификации. Подтверждают, что сервер имеет право отправлять почту от имени домена.
Почтовый сервер и валидация email
При проверке email-адреса валидатор напрямую взаимодействует с почтовым сервером получателя. Он подключается к MTA по SMTP и спрашивает: «Примете письмо для user@domain.com?» Ответ сервера (250, 550, 450) позволяет определить, существует ли ящик.
Но не все серверы отвечают честно. Catch-all серверы принимают всё подряд. Серверы с грейлистингом отвечают временным отказом. Некоторые вообще закрывают соединение без ответа. Поэтому валидация - не просто один SMTP-запрос, а комплекс проверок с учётом поведения конкретного сервера.
Распространённые проблемы
- Отсутствие PTR-записи - письма отклоняются крупными провайдерами (Gmail, Yahoo, Mail.ru).
- Попадание IP в чёрный список - если с сервера шёл спам, IP блокируется в DNSBL. Все письма с этого IP падают в спам или отклоняются.
- Неправильная настройка SPF/DKIM - письма не проходят аутентификацию и попадают в спам.
- Переполнение очереди - MTA не справляется с нагрузкой, письма копятся в очереди и доставляются с задержкой.
uChecker проверяет доступность почтового сервера получателя, анализирует MX-записи, PTR и поведение MTA при SMTP-хендшейке. Вы получаете не просто статус адреса, а полную картину состояния серверной инфраструктуры домена.
