SMTP
SMTP (Simple Mail Transfer Protocol, простой протокол передачи почты) — это стандартизированный сетевой протокол прикладного уровня, предназначенный для надежной передачи и маршрутизации сообщений электронной почты в сетях TCP/IP. Протокол используется почтовыми клиентами для отправки писем на почтовые серверы, а также самими серверами для пересылки корреспонденции между собой через глобальную сеть интернет до конечного почтового ящика адресата.
Архитектура протокола и участники почтовой экосистемы
В отличие от протоколов получения почты (IMAP и POP3), которые работают по модели «затягивания» (Pull), протокол SMTP является типичным механизмом «проталкивания» (Push). В маршрутизации каждого электронного письма задействованы специализированные агенты:
- MUA (Mail User Agent): почтовый клиент пользователя (Thunderbird, Outlook, мобильное приложение или почтовый движок CMS Joomla), формирующий исходный пакет сообщения.
- MSA (Mail Submission Agent): промежуточный агент первичного приема, проверяющий учетные данные отправителя и корректность синтаксиса заголовков перед отправкой в очередь.
- MTA (Mail Transfer Agent): центральный серверный узел (Postfix, Exim, Sendmail), анализирующий домен получателя через DNS-записи
MXи осуществляющий прямую пересылку между узлами интернета. - MDA (Mail Delivery Agent): служба локальной доставки (например, Dovecot), помещающая принятое письмо в дисковое хранилище конкретного ящика пользователя.
Анатомия SMTP-сессии: команды и диалог серверов
Взаимодействие между клиентом и сервером происходит в виде последовательного обмена текстовыми командами поверх надежного TCP-соединения:
1. Приветствие: сервер возвращает код готовности 220.
2. Рукопожатие: клиент передает команду расширенного протокола EHLO client.domain.com, получая список поддерживаемых опций (STARTTLS, AUTH).
3. Аутентификация: команда AUTH LOGIN с передачей логина и пароля.
4. Маршрутизация: указание отправителя MAIL FROM:<user@site.ru> и получателя RCPT TO:<client@mail.ru>.
5. Передача тела: команда DATA, отправка служебных заголовков и текста, завершающаяся точкой на отдельной строке <CRLF>.<CRLF>.
6. Закрытие: команда QUIT с ответом 221 2.0.0 Bye.
Коды ответов сервера строго типизированы: серия 2xx означает успешное выполнение, 3xx — готовность принимать данные, 4xx — временную ошибку (например, Greylisting), а 5xx — фатальный отказ в доставке.
Сетевые порты и эволюция безопасности (Шифрование)
В процессе эволюции протокола назначение стандартных сетевых портов претерпело кардинальные изменения для защиты от несанкционированного релеинга (Open Relay) и спам-ботнетов:
- Порт 25 (Relay / MTA-to-MTA): исторический порт обмена между почтовыми серверами. Большинство хостинг-провайдеров и операторов связи блокируют исходящий 25 порт для обычных пользователей, чтобы предотвратить рассылку спама с зараженных устройств.
- Порт 587 (Submission / STARTTLS): официальный стандарт (RFC 6409) для отправки почты клиентами. Требует обязательной авторизации и поддерживает протокол
STARTTLS, переводящий открытую сессию в зашифрованный TLS-туннель. - Порт 465 (SMTPS / Implicit TLS): защищенный порт с немедленным шифрованием. TLS-рукопожатие инициируется до отправки каких-либо текстовых команд протокола, гарантируя защиту учетных данных от перехвата в недоверенных сетях.
Криптографическая триада доставляемости: SPF, DKIM и DMARC
Исторически SMTP не содержал механизмов проверки подлинности отправителя, что позволяло злоумышленникам подделывать заголовок From:. Сегодня почтовые провайдеры (Яндекс, Mail.ru, Gmail) требуют строгой аутентификации:
• SPF (Sender Policy Framework): TXT-запись в DNS домена со списком доверенных IP-адресов серверов, имеющих право слать письма.
• DKIM (DomainKeys Identified Mail): цифровая подпись заголовков и тела письма асимметричным ключом. Публичный ключ публикуется в DNS.
• DMARC: политика, предписывающая серверу-получателю отклонять (reject) или отправлять в спам (quarantine) письма, не прошедшие проверку SPF и DKIM.
Дополнительным критическим фактором является наличие корректной обратной записи rDNS (PTR), подтверждающей принадлежность IP-адреса отправителя заявленному почтовому домену.
Ошибки отправки и алгоритмы борьбы со спамом
В процессе передачи писем серверы-получатели применяют комплексные многоуровневые фильтры для защиты почтовых ящиков:
- Серые списки (Greylisting): технология временного отклонения первого письма от неизвестного сервера ошибкой
451. Настоящий почтовый сервер обязан повторить попытку через несколько минут, в то время как примитивные спам-скрипты не хранят очереди повторов. - DNSBL и RBL-базы: сверка IP-адреса отправителя с публичными черными списками спам-источников (Spamhaus, Barracuda). Попадание в DNSBL влечет немедленный отказ
550 5.7.1 Service unavailable. - Репутация домена и IP: поисковые системы анализируют процент жалоб пользователей на спам и скорость открытия транзакционных рассылок.
Практика отправки почты в CMS Joomla и FastPanel
Организация почтового обмена — критически важная часть любого коммерческого сайта (подтверждение заказов, регистрация, уведомления форм):
Использование стандартной функции mail() веб-сервера крайне нежелательно: письма уходят без подписи DKIM от имени системного пользователя хостинга (например, nobody@server), что приводит к их 100% блокировке почтовыми сервисами.
В глобальных настройках CMS Joomla следует выбирать способ отправки SMTP, подключая корпоративную почту (Яндекс 360, VK WorkMail) или специализированные транзакционные шлюзы через защищенный порт 465 (SSL/TLS) с обязательной авторизацией.
На сервере под управлением FastPanel локальный почтовый демон (Postfix) настраивается с автоматическим DKIM-подписыванием через OpenDKIM и мониторингом очереди писем через утилиту postqueue -p.


