VPSРейтинг
Почта27 февраля 2026 · 16 мин чтения

Stalwart Mail Server на VPS: свой почтовый сервер за 30 минут

Своя почта на своём домене — это профессионально. А ещё это независимость от Google и Microsoft, полный контроль над данными и ноль ежемесячной платы за почтовый хостинг. Stalwart — современный почтовый сервер на Rust: ставится одной командой, настраивается через веб-интерфейс, сам управляет сертификатами.

1. Зачем свой почтовый сервер

Корпоративная почта на Google Workspace стоит от 6 долларов в месяц за каждый ящик. Если у вас команда из 5 человек — это 30$/мес, или 360$ в год. Почта на Яндекс 360 тоже стала платной. А VPS с почтовым сервером — 200–400 рублей в месяц за неограниченное число ящиков.

КритерийGoogle WorkspaceStalwart на VPS
Стоимость (5 ящиков)~1 800 ₽/месСтоимость VPS (~300 ₽/мес)
Число ящиковПлатить за каждыйБез ограничений
ХранилищеПо тарифуВесь диск VPS
Контроль данныхНа серверах GoogleТолько ваш сервер
Зависимость от сервисаВысокаяНулевая
Сложность настройкиПростоОдин раз настроить
Технические навыкиНе нужныБазовые знания Linux

Stalwart — это почтовый сервер нового поколения, написанный на Rust. Поддерживает все нужные протоколы: SMTP для отправки/получения, IMAP для почтовых клиентов, JMAP (современный протокол вместо IMAP), CalDAV и CardDAV для календарей и контактов. Всё это в одном процессе без зависимостей.

Честное предупреждение

Почтовый сервер — это не Nginx и не Docker-контейнер. Это сложная система с репутацией IP, DNS-записями, чёрными списками и строгими проверками у получателей. Гайд максимально упрощает процесс, но будьте готовы уделить настройке DNS особое внимание — от этого зависит доставляемость писем.

2. Что нужно до начала

🖥️

VPS с открытым портом 25

Это самое важное. Порт 25 — стандартный порт для передачи почты между серверами. Если он заблокирован, сервер не сможет получать письма. Большинство VPS-провайдеров (RUVDS, Selectel, FirstVDS, AdminVPS) порт 25 не блокируют. Проверьте заранее или уточните в техподдержке. Минимум RAM: 1 ГБ (лучше 2 ГБ), диск: 20+ ГБ.

🌐

Домен

Нужен зарегистрированный домен, например example.ru. Купите у любого регистратора: REG.RU, 2domains, Namecheap. У вас должен быть доступ к управлению DNS-записями домена — именно туда вы будете добавлять MX, SPF, DKIM и DMARC.

📡

Статический IP-адрес

На большинстве VPS он уже есть. Статический — значит не меняется при перезапуске. Именно на этот IP будут указывать DNS-записи и PTR-запись. Проверьте: нет ли вашего IP в спам-базах. Используйте MXToolbox Blacklist Check.

📝

Поддомен для почтового сервера

Рекомендуется использовать поддомен mail.example.ru как FQDN (полное имя) почтового сервера. Основной домен example.ru остаётся для сайта. На mail.example.ru указывает A-запись на IP вашего VPS.

Проверьте порт 25 до покупки VPS

Если VPS уже есть — проверьте что порт 25 не заблокирован. Подключитесь к серверу и выполните команду:

Проверка: можем ли мы подключиться к другому почтовому серверу на порту 25
# Пробуем подключиться к почтовому серверу Google
# Если порт открыт — увидите приветствие SMTP-сервера
nc -z -v gmail-smtp-in.l.google.com 25

Если видите Connection succeeded — порт открыт, можно продолжать. Если Connection refused или таймаут — свяжитесь с провайдером.

Добавьте A-запись для поддомена mail

Сделайте это заранее — DNS-записи распространяются до 24 часов (обычно быстрее, 10–30 минут). В панели вашего DNS-провайдера добавьте:

ТипИмяЗначениеTTL
AmailIP вашего VPS3600

Это создаст запись mail.example.ru → ваш IP. Stalwart будет использовать этот адрес как своё имя.

3. Установка Stalwart

Stalwart распространяется с официальным скриптом установки. Он сам определяет архитектуру сервера, скачивает нужный бинарник, создаёт системного пользователя, настраивает systemd-службу и запускает сервер. Это самый простой способ.

Шаг 1: обновите систему

Обновление пакетов Ubuntu
apt update && apt upgrade -y

Шаг 2: установите Stalwart

Скрипт задаёт несколько вопросов в процессе. На вопрос о директории — оставьте по умолчанию (/opt/stalwart-mail). На вопрос о типе backend — выберите RocksDB (встроенная база, подходит для большинства случаев, ничего дополнительно устанавливать не нужно).

Скачать и запустить установщик Stalwart
curl --proto '=https' --tlsv1.2 -sSf https://get.stalw.art/install.sh -o install.sh
sudo sh install.sh

В конце установки скрипт выведет временный пароль администратора. Сохраните его!Если потеряли — пароль можно посмотреть в файле:

Найти пароль администратора (если не сохранили)
cat /opt/stalwart-mail/etc/config.toml | grep password

Шаг 3: откройте порты в файрволле

Stalwart слушает сразу несколько портов. Откройте все нужные:

Открыть порты для почтового сервера
# SMTP — приём почты от других серверов
ufw allow 25/tcp

# SMTP Submission — отправка из почтового клиента
ufw allow 587/tcp
ufw allow 465/tcp

# IMAP — получение почты в клиенте
ufw allow 143/tcp
ufw allow 993/tcp

# HTTPS — веб-панель администратора
ufw allow 443/tcp

# HTTP-панель (опционально, только если нет SSL)
ufw allow 8080/tcp

ufw reload

Шаг 4: проверьте что служба запустилась

Статус службы Stalwart
systemctl status stalwart-mail

Должно быть Active: active (running). Если статус failed — смотрите детали командой journalctl -u stalwart-mail -n 50.

Альтернатива: Docker Compose

Если предпочитаете Docker — используйте такой compose-файл. Учтите: при использовании Docker вам нужно отдельно настраивать SSL-сертификаты через Traefik или Caddy, либо пробросить Nginx с certbot.

/opt/stalwart/docker-compose.yml
services:
  stalwart:
    image: stalwartlabs/mail-server:latest
    container_name: stalwart
    restart: unless-stopped
    ports:
      - "25:25"
      - "587:587"
      - "465:465"
      - "143:143"
      - "993:993"
      - "4190:4190"
      - "443:443"
      - "127.0.0.1:8080:8080"  # Только localhost: Docker обходит UFW
    volumes:
      - /opt/stalwart/data:/opt/stalwart-mail/data
      - /opt/stalwart/config:/opt/stalwart-mail/etc
Запустить
mkdir -p /opt/stalwart/{data,config}
cd /opt/stalwart
docker compose up -d
# Получить пароль администратора
docker logs stalwart | grep -A2 "administrator"

4. Первый вход в веб-панель

Сразу после установки веб-панель доступна по HTTP на порту 8080. Откройте в браузере:

http://ВАШ_IP:8080/login

Войдите с логином admin и паролем из установщика. Сразу смените пароль на что-то надёжное: Account → Change Password.

Настройте имя сервера

Это критически важно. Имя сервера (hostname) должно совпадать с тем поддоменом, на который будет указывать PTR-запись. Идём в: Settings → Server → Network → Hostname. Введите mail.example.ru (замените на свой домен). Нажмите Save и затем Reload Configuration.

Почему это важно

При отправке письма ваш сервер представляется получателю через EHLO/HELO команду, называя своё имя. Если это имя не совпадает с PTR-записью вашего IP — многие почтовые серверы отклонят письмо или пометят как спам.

Настройте SSL-сертификат

Stalwart поддерживает автоматическое получение сертификатов от Let's Encrypt через ACME. Идём в Settings → TLS → ACME Providers → выберите существующий Let's Encrypt провайдер. Введите свой email и нажмите Save.

Затем в Settings → TLS → TLS Certificates → добавьте сертификат, выбрав ваш домен и ACME-провайдер. Stalwart сам получит и будет обновлять сертификат.

После получения сертификата веб-панель будет доступна по HTTPS: https://mail.example.ru/login

5. Добавление домена и DNS-записи

Теперь добавим ваш домен в Stalwart и настроим DNS. Это самая важная часть — именно от DNS-записей зависит, попадут ли ваши письма в папку «Входящие» или в спам.

Добавьте домен в Stalwart

В веб-панели: Management → Directory → Domains → Add Domain. Введите ваш домен (например, example.ru) и нажмите Save.

После создания нажмите на домен и перейдите в раздел DNS Records. Stalwart автоматически сгенерирует все нужные записи с правильными значениями — их нужно скопировать и добавить в панели вашего DNS-провайдера.

Какие записи нужно добавить

Вот что означает каждая запись и зачем она нужна:

MX

MX-запись — куда доставлять почту

Главная запись. Говорит другим серверам: «Для домена example.ru письма нужно отправлять на mail.example.ru». Без неё вам не смогут написать.

example.ru. MX 10 mail.example.ru.
SPF

SPF — кто имеет право отправлять от имени домена

Защищает от подделки отправителя. Записью TXT вы объявляете: только сервер, указанный в MX, может отправлять письма от @example.ru.

example.ru. TXT "v=spf1 mx -all"
DKIM

DKIM — цифровая подпись писем

Каждое исходящее письмо подписывается криптографическим ключом. Получатель проверяет подпись и убеждается что письмо не изменялось в пути. Stalwart генерирует два ключа: ed25519 (короткий) и RSA (длинный — совместимость).

selector._domainkey.example.ru. TXT "v=DKIM1; k=ed25519; p=..."
DMARC

DMARC — политика для писем, не прошедших SPF/DKIM

Говорит получателям что делать с письмами, которые прошли от вашего имени, но не прошли SPF или DKIM — отклонять (reject), отправлять в спам (quarantine) или принимать (none). Начните с none, потом ужесточайте.

_dmarc.example.ru. TXT "v=DMARC1; p=none; rua=mailto:postmaster@example.ru"

Важно: используйте точные значения из Stalwart

Не копируйте примеры выше — они для иллюстрации. Реальные значения DKIM-ключей и другие детали берите из раздела Management → Directory → Domains → [ваш домен] → DNS Records. Там Stalwart показывает точные значения, готовые к копированию.

Проверьте что записи применились

После добавления записей подождите 10–30 минут и проверьте из командной строки:

Проверка MX-записи
# MX-запись домена
dig MX example.ru +short

# SPF-запись
dig TXT example.ru +short

# DKIM-запись (подставьте ваш селектор из панели Stalwart)
dig TXT 202404e._domainkey.example.ru +short

6. PTR-запись: обратный DNS

PTR-запись (она же rDNS, обратный DNS) — это запись, которая по IP-адресу возвращает имя хоста. Обычный DNS работает в сторону «имя → IP», PTR работает в сторону «IP → имя».

Почтовые серверы крупных провайдеров (Gmail, Outlook, Mail.ru) обязательно проверяют PTR. Если проверка провалится — письмо попадёт в спам или будет отклонено. Это один из самых частых камней преткновения при настройке почтового сервера.

PTR не настраивается в панели DNS вашего домена

PTR-запись настраивается у вашего VPS-провайдера, в его панели управления. Только провайдер владеет IP-адресом, поэтому только он может задать обратную запись.

Найдите в панели вашего провайдера раздел «Обратный DNS», «rDNS» или «PTR». Введите значение:

Что ввести в поле PTR/rDNS у провайдера
# IP вашего VPS → mail.example.ru
# Например: 185.123.45.67 → mail.example.ru

Проверьте через пару минут:

Проверка PTR-записи
# Замените на IP вашего VPS
dig -x 185.123.45.67 +short

# Должно вернуть: mail.example.ru.

Проверка согласованности

Убедитесь что всё согласовано: IP → mail.example.ru (PTR) и mail.example.ru → IP (A-запись). Обе должны совпадать. И hostname в Stalwart тоже должен быть mail.example.ru.

7. Создание почтовых ящиков

После настройки DNS создайте первый почтовый ящик. Идём в веб-панель: Management → Directory → Accounts → Add Account.

ПолеЧто вводить
Account nameivan (без @domain)
Display nameИван Иванов
PasswordsНадёжный пароль
Email addressesivan@example.ru — нажмите Add
RolesUser (или Administrator для первого ящика)

Добавьте алиас postmaster

По стандарту RFC каждый почтовый сервер должен иметь адрес postmaster@example.ru. Назначьте его своему первому ящику: в настройках ящика добавьте алиас postmaster@example.ru. Иначе Stalwart будет показывать предупреждения.

Алиасы и перенаправления

Один пользователь может получать почту на несколько адресов. Например, ivan@example.ru, info@example.ru и support@example.ru — все в один ящик. Добавьте нужные адреса в поле «Email addresses» аккаунта.

8. Подключение в Thunderbird

У Stalwart нет встроенного веб-почтового интерфейса (webmail) — используйте отдельный почтовый клиент. Thunderbird — бесплатный, кроссплатформенный (Windows, macOS, Linux) и отлично работает с IMAP.

Откройте Thunderbird: File → New → Existing Mail Account. Введите имя, адрес ivan@example.ru и пароль. Thunderbird попытается автоматически найти настройки. Если не получится — введите вручную:

ПараметрЗначение
Тип входящей почтыIMAP
Сервер входящей почтыmail.example.ru
Порт IMAP993
Защита IMAPSSL/TLS
Сервер исходящей почты (SMTP)mail.example.ru
Порт SMTP587
Защита SMTPSTARTTLS
Метод аутентификацииNormal password
Имя пользователяivan@example.ru

Настройка мобильного приложения

На Android: используйте FairEmail или K-9 Mail — оба бесплатны. На iOS: встроенное приложение «Почта» — самый простой вариант, или Canary Mail. Настройки IMAP/SMTP — те же что в таблице выше.

Добавить веб-почту (Roundcube)

Если нужен браузерный интерфейс — добавьте Roundcube через Docker. Это классический веб-клиент для почты, работает через IMAP:

/opt/roundcube/docker-compose.yml
services:
  roundcube:
    image: roundcube/roundcubemail:latest
    container_name: roundcube
    restart: unless-stopped
    ports:
      - "8090:80"
    environment:
      - ROUNDCUBEMAIL_DEFAULT_HOST=ssl://mail.example.ru
      - ROUNDCUBEMAIL_DEFAULT_PORT=993
      - ROUNDCUBEMAIL_SMTP_SERVER=mail.example.ru
      - ROUNDCUBEMAIL_SMTP_PORT=587
Запустить
mkdir /opt/roundcube && cd /opt/roundcube
# Создайте docker-compose.yml с конфигом выше
docker compose up -d

После запуска Roundcube доступен на порту 8090. Закройте порт снаружи и используйте Nginx с SSL, или просто Caddy:caddy reverse-proxy --from webmail.example.ru --to localhost:8090.

9. Проверка доставляемости

Прежде чем начать использовать сервер по-настоящему — проверьте доставляемость. Иначе вы будете думать что письма отправились, а они тихо ложатся в спам.

mail-tester.com — главный инструмент

Зайдите на mail-tester.com. Сайт даёт вам временный адрес вида test-abc123@mail-tester.com. Отправьте на него письмо из Thunderbird. Затем нажмите «Check your score» на сайте.

Вы получите оценку от 1 до 10 с детальным отчётом: что настроено правильно, что нет, и как исправить. Стремитесь к оценке 9/10 или 10/10.

Что проверяет mail-testerКритичность
SPF-записьВысокая
DKIM-подпись на письмеВысокая
DMARC-записьСредняя
PTR / обратный DNSВысокая
IP не в блок-листахВысокая
Правильный HELO hostnameСредняя
HTML-письмо не выглядит как спамНизкая

Проверка через MXToolbox

Зайдите на mxtoolbox.com → MX Lookup → введите ваш домен. Убедитесь что MX-запись найдена и ведёт на ваш сервер. Там же в разделе Blacklist Check — проверьте что ваш IP не в спам-листах.

Отправьте тестовое письмо на Gmail

Отправьте письмо на любой Gmail-адрес. В Gmail нажмите на письмо → кнопка "⋮" → «Show original» / «Показать оригинал». Вы увидите заголовки письма. Проверьте строки:

Что искать в заголовках Gmail
# Хорошо выглядит так:
Authentication-Results: mx.google.com;
   dkim=pass header.i=@example.ru;
   spf=pass smtp.mailfrom=example.ru;
   dmarc=pass (p=NONE) action=none header.from=example.ru

# Если dkim=fail или spf=fail — проверьте DNS-записи

Частые проблемы

Нужен VPS для почтового сервера? Смотрите лучшие варианты

Лучшие VPS в России →

Смотрите также