VDS · Приложения и боты

Почтовый сервер: почему это сложно и что нужно учесть

Почему исходящие почтовые порты закрыты и как их открыть, что настроить, чтобы письма доходили — PTR, SPF, DKIM, DMARC — и когда свой почтовик заводить не стоит.

Обновлено 23 августа 2026 г.

Поднять почтовый сервер технически несложно — сложно добиться, чтобы письма попадали во «Входящие», а не в спам и не отбивались молча. Эта статья о том, что нужно сделать до первого письма.

Почему это отдельная задача

Приём почты работает почти сразу: поставили сервер, открыли порт 25, письма приходят. Проблема в отправке, и у неё две части. Первая — исходящие почтовые порты у нас закрыты по умолчанию и открываются по заявке. Вторая — принимающая сторона (Gmail, Mail.ru, Яндекс) проверяет отправителя по нескольким признакам, и любой непройденный превращает письмо в спам или в отказ.

Проверяется как минимум следующее:

Что проверяютГде настраиваетсяЧто будет без этого
Открыт ли исходящий порт 25Заявка в поддержкуПисьма не уходят вовсе
Обратная запись адреса (PTR)Вкладка «Доступ» в панели машиныОтказ на этапе соединения
SPFDNS доменаПисьмо в спам
DKIMDNS домена + почтовый серверПисьмо в спам
DMARCDNS доменаДомен легко подделать
Репутация адресаИстория отправкиМолчаливая фильтрация

Порядок настройки

  1. Заявка на исходящие порты. Порты 25, 465 и 587 наружу закрыты, пока их не откроют по вашей просьбе. Начинайте с этого: остальное без него не проверить, как описано ниже.
  2. PTR. Обратная запись должна совпадать с именем, которым сервер представляется в SMTP. Задайте её в панели машины на вкладке «Доступ», например mail.example.com, и заведите такую же прямую запись A на адрес машины.
  3. Почтовый стек. Проще всего взять готовую сборку в контейнерах — docker-mailserver или Mailcow. Ставится через Docker Compose, сам поднимет Postfix, Dovecot, антиспам и ключи DKIM.
  4. DNS. Заведите MX на имя сервера, затем SPF и DMARC:
example.com.        MX  10 mail.example.com.
example.com.        TXT "v=spf1 mx -all"
_dmarc.example.com. TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@example.com"
  1. DKIM. Ключ генерирует почтовый сервер, публичную часть публикуете как TXT-запись <селектор>._domainkey.example.com.
  2. Проверка. Отправьте письмо на сервис проверки (mail-tester, learndmarc) и добейтесь полного балла. Не рассылайте ничего до этого.

Исходящие почтовые порты закрыты по умолчанию

Это главное, что нужно знать до установки почтовика. На узле закрыт исходящий трафик машины на порты 25, 465 и 587. Отправка писем наружу с новой машины не работает и не заработает от настроек внутри системы: пакеты не выходят за её сетевой интерфейс.

Проверить можно так — соединение не установится:

nc -vz smtp.gmail.com 25

Так сделано потому, что взломанная машина первым делом начинает рассылать спам, а отвечать за адрес и его репутацию приходится всем соседям по узлу. Приём почты это не затрагивает: входящие соединения на 25, 465, 587 и 993 не блокируются, почтовик принимает письма сразу.

Как открыть

Порты открываются по заявке, вручную и не мгновенно. Кнопки в панели для этого нет.

  1. Напишите в поддержку с номером машины (вкладка «Оплата», блок «Для поддержки»).
  2. Опишите, что за отправка: домен, характер писем, примерный объём в сутки.
  3. Дождитесь ответа. Пока порты закрыты, ставить и настраивать почтовик можно — проверять отправку нельзя.

Массовые рассылки по купленным базам не открывают ни при каких объяснениях, см. Что можно и чего нельзя на машине.

Если отправка нужна сегодня, а не после переписки, берите внешний релей: почтовый сервис отдаёт SMTP-логин и принимает подключение на порт 2525 или через API, и порт 25 при этом не нужен.

Брандмауэр внутри машины

Со своей стороны разрешите входящие соединения на почтовые порты:

sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 465/tcp
sudo ufw allow 993/tcp

Правила ufw управляют только тем, что входит в вашу систему. Запрет на исходящие 25, 465 и 587 стоит снаружи, и ufw allow out его не снимает.

Никогда не оставляйте открытый релей. Проверьте: swaks --to test@example.com --server <адрес-машины> с чужой машины без авторизации — соединение должно отклоняться. Открытый релей за сутки превращает адрес машины в источник спама и убивает его репутацию навсегда.

Когда свой почтовик не нужен

  • Нужна только отправка уведомлений из приложения — берите внешний сервис отправки. Дешевле и доходимость выше. Подключайтесь к нему по HTTP API или по альтернативному порту вроде 2525: стандартные 465 и 587 закрыты так же, как 25.
  • Нужна почта на домене для людей — почтовый хостинг решит задачу без вашего участия.
  • Нет готовности следить за обновлениями и очередью — заброшенный почтовик становится дырой.

Свой сервер оправдан, когда важна независимость и вы готовы к сопровождению: резервные копии ящиков обязательны, а места под почту нужно закладывать с запасом — см. место на диске.