Что такое SMTP-сервер и как он работает

Что такое почтовый сервер и как он работает

Андрей Салита
Андрей Салита Архитектор ИБ
18 августа 2023

Управлять электронной почтой сложно: люди отправляют и получают тысячи писем в день. Но решение есть — почтовый сервер. Подробности в тексте.

Изображение записи

Почтовый сервер — это собирательное название, которое часто применяют для агентов доставки (MTA, Mail Transfer Agent) и приема (MDA, Mail Delivery Agent) почты. Без них пользователи не могли бы передавать сообщения на другие почтовые клиенты. 

Серверы электронной почты работают примерно так же, как и другие типы серверов. Они отвечают за маршрутизацию электронной почты по сети и хранение писем. Такие серверы полагаются на IP-адреса, прикрепленные к электронным письмам, и систему DNS, чтобы гарантировать, что каждое сообщение будет направлено через интернет до нужного получателя, независимо от его домена. Почтовые серверы работают на базе протокола SMTP, Simple Mail Transfer Protocol, — простого протокола передачи почты.

Что такое SMTP-сервер

Простой протокол передачи почты, SMTP — это коммуникационный протокол, который позволяет отправлять и получать электронные письма. Без SMTP-сервера вы не сможете отправить электронную почту получателям в больших количествах. Сервер упрощает этот процесс — например, проверяет, активна ли учетная запись получателя письма.

Также если письмо не доставлено, протокол SMTP возвращает его отправителю. Возвращенные сообщения содержат данные, информирующие о причине инцидента. Например, о том, что адрес получателя был указан неверно.

Преимущества SMTP-сервера

Массовая рассылка писем без ограничений

Бывают ситуации, когда провайдеры устанавливают лимиты на отправку писем с одной учетной записи. Если такое происходит, она может быть заблокирована за подозрение в спаме. Использование своего сервера позволит обойти это ограничение.

Анализ технических ошибок

В случае некорректной отправки письма SMTP-сервер всегда возвращает сообщение с причиной. 

Экономия ресурсов

Хотя SMTP-сервер обладает меньшим функционалом, нежели специальные сервисы для рассылок, он лучше подходит для массовых рассылок, которые не содержат изображения, анимации и видеозаписи.

Недостатки SMTP-сервера

Отсутствие шифрования

В стандартной версии SMTP-сервера отсутствует защита от атак злоумышленников. Однако функционал предусматривает создание защищенного соединения при помощи SSL или TLS.

Отсутствие фильтрации от спама

Если пользователь не будет использовать специальные решения, сервер может быть заполнен спам-письмами, которые придется удалять вручную.

Необходимо дорабатывать сервер вручную

При аренде SMTP-сервера настройкой занимается техническая поддержка, в противном случае — пользователь. 

Почтовый сервер: принцип работы

Во время работы SMTP-сервер выполняет роль посредника между MTA отправителя и MDA получателя. Процесс отправки сообщения состоит из нескольких действий:

  • Вы заходите с почтового клиента, пишете текст, указываете адрес получателя и нажимаете кнопку Отправить. После этого письмо попадает на один из серверов SMTP.
  • Система отправителя передает SMTP-серверу собственный адрес и адрес получателя, тему и содержание письма.
  • После получения информации сервер начинает поиск данных получателя;
  • В случае ошибки система предпримет еще несколько попыток передачи, после чего вернет ответ с кодом ошибки.
  • В случае успеха активируются протоколы POP3 и IMAP, про которые можно прочитать здесь.

SMTP-сессия

Для обмена информацией SMTP-серверы устанавливают между собой сессию. Рассмотрим подробнее, как она работает.

Подготовка к отправке

Для установки связи отправителя и получателя используется команда HELLO. Отправитель направляет пакет с командой и адресом получателя:


    HELLO host2.com

host2 — домен получателя; то, что идет после @ в почтовом адресе.

В ответ на команду SMTP-сервер получателя возвращает следующее сообщение:


    250 host1.com

host1 — домен отправителя; 250 — код о том, что сервер получателя разрешает дальнейшее «общение».

Уведомление об отправке

Далее отправитель передает информацию о себе с помощью команды MAIL FROM:


    MAIL FROM: user1@host1.ru

На что получает ответ от получателя, что информация доставлена и сервер разрешает отправку с ящика отправителя:


    250 2.1.0 Ok

Выбор почты получателя

После отправитель сообщает, кому будет направлено письмо, с помощью команды RCP TO:


    RCP TO: user2@host2.ru

В случае корректной работы ответ следующий:


    250 2.1.0 Ok

Передача письма

С помощью команды DATA происходит отправка сигнала о начале передачи данных:


    DATA
FROM: user1@host1.ru
TO: user2@host2.ru

В ответ отправитель получает сообщение, которое включает ID, по которому можно найти лог ошибки, если письмо не отправится:


    250 2.0.0 Ok: queued as 1AB2CD3EFG

Завершение передачи

Завершение передачи происходит с помощью команды QUIT, на которую отправитель получает ответ следующий ответ:


    221 2.0.0 Bye

Классификация SMTP-серверов и их различия

Входящие и исходящие серверы

Почтовые серверы можно настроить на базе трех режимов:

  • только отправка почты,
  • только прием почты,
  • отправка и прием почты.

Набор протоколов для работы сервера будет отличаться для каждого из режимов. Например, для приема сообщений используются протоколы POP3 или IMAP, а для отправки — SMTP. Описать это можно следующей таблицей:

Почтовый серверСервер для входящих писемСервер для исходящих писем
selectelmail.rupop3.selectelmail.rusmtp.selectelmail.ru

При использовании протокола POP3 происходит загрузка письма на устройство получателя, после чего оригинал удаляется с сервера. Протокол IMAP работает иным образом: он просто получает доступ к письму на сервере и воспроизводит его копию на устройстве пользователя. 

Протокол SMTP используется непосредственно для отправки писем. Подробнее о его работе вы можете прочитать в предыдущей статье, а более подробно о разнице POP3 и IMAP — здесь.

Обычные и выделенные, платные и бесплатные

Условно SMTP-серверы можно разделить на две категории:

  • Обычные почтовые серверы. Это серверы для отправки личной почты, которые, как правило, используют провайдеры. Их отличительная черта — лимит на отправку сообщений, который устанавливает владелец сервера.
  • Выделенные серверы ретрансляции SMTP. Это серверы для массовых рассылок и отправки транзакционных писем.
Ретрансляция SMTP — процесс передачи письма от одного SMTP-сервера к другому, в обход ограничений на прямую отправку. Серверы ретрансляции не имеют лимита (или лимит достигает тысячи сообщений в секунду) на количество отправленных сообщений, что позволяет не опасаться попадания IP в черный список провайдера. Кроме того, они специально настроены для обработки большого объема писем и имеют мощные механизмы для обеспечения доставки и предотвращения блокировки.

Также можно условно разделить SMTP-серверы на платные и бесплатные. Первые не имеют каких-либо ограничений на рассылку писем кроме вычислительной мощности. Вторые же ограничены суточными лимитами на количество отправляемых писем, а также на пул пользователей — это важно учитывать при настройке рассылки по регионам. Таким образом, бесплатные почтовые сервисы не подойдут для бизнес-задач.

Стоит ли приобретать дополнительный почтовый сервер SMTP для рассылки?

Так как в большинстве случаев провайдер бесплатной почтовой службы накладывает ограничения на количество отправляемых писем, возникает потребность в приобретении собственного SMTP-сервера. 

Сервис Selectel позволяет отправлять до трех млн писем в час с 99,99% доставляемостью. Вместе с надежностью клиент получает проверку адресов по стоп-листам и стоп-ловушкам, отчеты о статусе доставки и сводную статистику по рассылкам, а также соответствие 152-ФЗ. Это значит, что клиент может хранить и обрабатывать персональные данные четвертого и третьего уровней защищенности: email-адреса, ФИО, паспортные и другие личные данные, номера телефонов.

Использовать собственный почтовый сервер можно по нескольким причинам:

  • Забота о приватности. Для некоторых пользователей важно, чтобы письма не анализировались алгоритмами компаний.
  • Безопасность сети. Поскольку почтовые ящики являются одним из туннелей в сеть компании, на почту нередко приходят различные письма с сомнительным содержанием. Собственный SMTP-сервер позволяет настраивать дополнительное ПО для проверки писем и вложений.
  • Наличие «красивого» адреса. Рассылка уходит не с привычных доменов вроде Gmail, а с собственных.

Пример настройки SMTP

Для настройки почтового сервера будем использовать hMailServer, а в качестве почтового клиента —  Mozilla Thunderbird.

Для начала перейдите на страницу загрузки Hmailserver и установите последнюю стабильную версию:

Веб-интерфейс загрузки hMailServer.

Во время установки выберите Full Installation и укажите тип базы данных, а также задайте пароль:

Окно загрузчика hMailServer.

В окне авторизации, которое встречает после установки, следует выбрать нужный хост, нажать кнопку Connect и ввести пароль:

Окно выбора требуемого сервера.

После входа откроется интерфейс для работы с сервером. Нажмите Add Domain и добавьте домен для почтового сервера:

Раздел добавления доменов.

После в пункте Domains появится наш созданный домен. В его разделе следует перейти в папку Accounts и создать там пользователей:

Раздел управления аккаунтами.

Следующий шаг. Теперь необходимо перейти в раздел Settings → Advanced → TCP/IP Ports и открыть порты для отправки и получения почты, которые указаны в списке:

Список служебных портов.

Для открытия портов перейдите в брандмауэр Windows и создайте соответствующий пункт. Данный процесс можно увидеть на рисунках ниже:

Создание правила для входящих подключений.
Указание требуемых портов.
Выбор профилей, на которые распространяется действие правила.
Указание названия правила.
Пример созданного правила.

Далее необходимо установить клиент Mozilla Thunderbird. Этот процесс весьма типовой, поэтому вы можете справиться самостоятельно. При первом запуске программа предлагает ввести свою учетную запись:

Интерфейс добавления учетной записи в клиент почты.

Важный этап — ручная настройка. Необходимо указать IP-адрес сервера и порты для работы:

Добавление адреса сервера и указание портов для работы.

На данном этапе у нас есть свой почтовый сервер и клиент. Стоит отметить, что для пересылки сообщений необходимо зарегистрировать DNS-запись — она может быть как локальной (как в данном примере), так и глобальной. Ее можно приобрести у соответствующих провайдеров.

Интерфейс Thunderbird.

Про настройку SMTP-сервера на базе инфраструктуры Selectel вы можете прочитать в нашей базе знаний.