Несколько лет назад ко мне обратился клиент - небольшая транспортная компания, которая работала на Gmail. Всё было нормально, пока однажды утром их корпоративный ящик не заблокировали за «подозрительную активность» - массовую рассылку коммерческих предложений. Восстановление заняло три дня, несколько сделок сорвалось. Когда мы разбирали ситуацию, выяснилось: компания была полностью зависима от решений Google, не имела контроля над логами и не могла настроить антиспам под свои задачи. Именно тогда встал вопрос о собственном почтовом сервере.
Меня зовут Андрей Зенков, руковожу веб-студией «Мельница» с 2013 года. За это время мы разворачивали почтовую инфраструктуру для десятков клиентов - от небольших интернет-магазинов до производственных предприятий. В этой статье я разберу полный цикл: от теории до работающего сервера.
Создать собственный почтовый сервер на Linux реально самостоятельно: понадобится VPS с выделенным IP, программы Postfix (отправка) и Dovecot (получение), а также правильно настроенные DNS-записи SPF, DKIM и DMARC.
Андрей Зенков, студия «Мельница»
Разбираем только Linux-сервер (Ubuntu/Debian) - Windows-варианты и готовые панели типа cPanel остаются за рамками статьи. Если вы владелец малого бизнеса, который устал зависеть от сторонних сервисов, или разработчик, которому нужен полный контроль над почтовой инфраструктурой, этот материал для вас.
Что такое почтовый сервер и как он работает изнутри
Проще всего объяснить через аналогию с обычной почтой. Когда вы отправляете письмо, оно проходит через несколько рук: курьер забирает конверт, сортировочный центр определяет маршрут, местное отделение доставляет адресату, а тот забирает из ящика. С электронными письмами ровно та же цепочка, только роли играют программы.
Путь письма выглядит так: почтовый клиент (Outlook, Thunderbird или браузер) передаёт сообщение на MTA, Mail Transfer Agent. Это агент передачи почты, он отвечает за приём и отправку сообщений между серверами. MTA отправляющей стороны делает DNS-запрос, находит MX-запись домена получателя и устанавливает соединение с MTA на стороне получателя. Тот принимает письмо и передаёт его в MDA, Mail Delivery Agent, который раскладывает сообщения по почтовым ящикам пользователей. Дальше почтовый клиент получателя забирает письмо из ящика через один из протоколов доступа.
Именно здесь в работу вступают три протокола, которые нужно понимать:
- SMTP (Simple Mail Transfer Protocol) - основной протокол передачи почты между серверами. Simple mail transfer protocol использует порт 25 для связи между серверами, порт 587 для отправки из почтового клиента (с авторизацией), порт 465 для защищённого соединения SSL. Этот протокол работает только в одну сторону - отправка.
- IMAP (Internet Message Access Protocol) - протокол для работы с почтой прямо на сервере. Письма хранятся на сервере, клиент только отображает их. IMAP mail работает на порту 143 в открытом виде и 993 в зашифрованном. Удобен тем, что с одним ящиком можно работать с нескольких устройств одновременно.
- POP3 - более старый протокол: скачивает письма на устройство и удаляет с сервера. Порт 110 или 995 (SSL). Сегодня используют редко - только если нужно хранить всё локально.
Теперь о том, что мы будем устанавливать. Postfix - это MTA, smtp сервер исходящей почты. Он принимает письма от ваших пользователей и доставляет их на внешние серверы, а также принимает входящие от других серверов. Dovecot - это MDA плюс сервер входящей почты: он раскладывает письма по ящикам и отдаёт их клиентам через IMAP или POP3. Эта пара стала индустриальным стандартом для использования на Linux-серверах - надёжная, хорошо документированная и совместимая с любым почтовым клиентом.
Важно понимать: почтовый сервер - не одна программа, а связка компонентов. Postfix и Dovecot дополняют друг друга, и настраивать их нужно в связке.
Зачем создавать собственный почтовый сервер - плюсы и минусы

Честно скажу: собственный почтовый сервер - не всегда лучшее решение. В моей практике с 2013 года я видел случаи, когда компании тратили недели на настройку, а потом всё равно возвращались на облако. Поэтому сначала - объективное сравнение.
| Параметр | Gmail / Яндекс | Почта на чужом домене | Свой сервер |
| Стоимость | Бесплатно или от 6$/мес за Workspace | От 1$/ящик в месяц | VPS от 5-15$/мес, далее - только время |
| Контроль над данными | Минимальный - данные на серверах Google/Яндекс | Частичный - зависит от провайдера | Полный контроль - всё у вас |
| Объем хранилища | Ограничен тарифом | Ограничен тарифом | Ограничен диском VPS, легко расширить |
| Кто обслуживает | Провайдер полностью | Провайдер | Вы сами |
| Настройка антиспама | Автоматическая, без гибкости | Ограниченная | Полная - защиту от спама настраиваете под себя |
| Сложность входа | Нулевая | Низкая | Высокая - нужны знания Linux и DNS |
Когда свой сервер оправдан? Мы в студии «Мельница» рекомендуем его в трёх случаях. Первый - компания работает с большим объемом транзакционной почты: уведомления о заказах, триггерные письма, отчёты. При большом объеме писем стоимость сторонних сервисов растёт быстро, а свой сервер после первоначальной настройки обходится дёшево. Второй - строгие требования к конфиденциальности: юридические, медицинские, финансовые компании, которым нельзя хранить переписку на сторонних серверах. Третий - нужна нестандартная конфигурация: специфические правила фильтрации, интеграция с внутренними системами, кастомная маршрутизация исходящей почты.
Когда лучше остаться на облаке? Если у вас небольшая команда до 10 человек и типичная офисная переписка - Microsoft Outlook через Office 365 или Google Workspace закроют все задачи дешевле и без головной боли. Outlook Thunderbird и другие клиенты прекрасно работают с облачными провайдерами. Собственный сервер может быть избыточным решением, если нет человека, который возьмёт на себя администрирование.
Типичная ошибка - недооценить операционные затраты. Настройка занимает день-два, но дальше нужно следить за обновлениями, репутацией IP, логами и резервными копиями. Это реальная нагрузка, для которой нужен человек, готовый её нести.
Что выбрать для почтового сервера - сравнение программных решений
Прежде чем выбрать конкретный smtp сервер и начать создание почтового окружения, нужно определиться со стеком. За годы практики я видел два принципиально разных подхода, и каждый из них оправдан в своей ситуации.
Первый путь - ручная сборка: берете Postfix как MTA, Dovecot как MDA, и по желанию PostfixAdmin для управления ящиками через веб-интерфейс. Весь процесс установки и настройки вы контролируете полностью. Это занимает больше времени, зато вы точно понимаете, что происходит внутри, и умеете чинить проблемы самостоятельно.
Второй путь - готовые сборки. Mailcow разворачивается через Docker и включает всё из коробки: антиспам, веб-интерфейс, управление доменами. iRedMail - скрипт-установщик, который собирает стек без Docker. Оба варианта мы в студии «Мельница» использовали на клиентских проектах, когда нужно было быстро запустить почтовую инфраструктуру без глубокого погружения в конфиги.
По операционной системе рекомендация однозначная: Ubuntu Server 22.04 LTS. Документации и примеров под неё больше всего, и если вы используете команды из этой статьи - они проверены именно на этой системе.
| Решение | Сложность настройки | Время развертывания | Гибкость | Подходит новичку | Требования к RAM |
| Postfix + Dovecot (ручная) | Высокая | 3-8 часов | Максимальная | Нет | от 512 МБ |
| Mailcow (Docker) | Средняя | 1-2 часа | Высокая | Да | от 4 ГБ |
| iRedMail | Низкая | 30-60 минут | Средняя | Да | от 2 ГБ |
Типичная ошибка новичков - выбрать Mailcow, не проверив, что на VPS хватает оперативной памяти. Docker-стек с антиспамом и базой данных ест от 4 ГБ RAM. Если VPS слабее - сервер будет нестабильным. Ручная сборка в этом плане выигрывает: Postfix + Dovecot без излишеств запускаются на 512 МБ.
В этой статье мы используем ручную сборку - Postfix + Dovecot. Причина простая: вы поймёте весь процесс изнутри и сможете диагностировать проблемы без чёрных ящиков. Готовые решения удобны, но когда они ломаются, а это случается, вы окажетесь беспомощны без понимания того, что внутри. Поэтому для первого раза ручная сборка лучше, даже если занимает больше времени.
Как подготовить сервер перед установкой почтового ПО

Из опыта скажу: большинство проблем с почтовыми серверами возникает не в процессе установки, а из-за пропущенных шагов подготовки. Половина настройки домена и доставляемости делается ещё до того, как вы вводите первую команду apt install.
Выбор VPS
Минимальные требования для стека, который мы создаем: 1-2 ГБ RAM, статический IP-адрес, SSD-диск от 20 ГБ. Статический IP - не опция, а обязательное условие. Динамический IP почти наверняка попадает в блок-листы, и ваши письма уйдут в спам или не дойдут вообще. Перед покупкой VPS проверьте IP через MXToolbox или аналоги - провайдеры иногда выдают адреса с уже испорченной репутацией.
Обновление системы
sudo apt update && sudo apt upgrade -y Делается сразу после первого входа на сервер, до любых других действий.
Настройка hostname
Hostname должен совпадать с поддоменом вашего домена - это влияет на корректную работу SMTP и идентификацию сервера при отправке почты:
sudo hostnamectl set-hostname mail.example.ru После этого проверьте /etc/hosts - там должна быть строка с вашим IP и новым именем хоста.
Открытие портов
Нужны порты: 25 (SMTP между серверами), 465 и 587 (отправка от клиентов), 993 (IMAP SSL), 995 (POP3 SSL), 80 и 443 (для получения SSL-сертификата):
sudo ufw allow 25,465,587,993,995,80,443/tcp
sudo ufw enable PTR-запись - самый важный и часто пропускаемый шаг
PTR-запись (обратный DNS) - это соответствие вашего IP адресу mail.example.ru. Настраивается не в панели домена, а в личном кабинете хостинг-провайдера. Без PTR-записи письма с высокой вероятностью уйдут в спам на стороне получателя.
На реальном проекте - производственная компания, которую мы переводили с корпоративного Gmail на собственный сервер - первые тестовые письма уходили в спам у всех получателей на Mail.ru. Прошло три дня, пока не выяснилось: провайдер настроил PTR-запись с опечаткой в имени хоста. После исправления доставляемость восстановилась полностью.
Андрей Зенков, практика студии «Мельница»
Синхронизация времени
Почтовые серверы чувствительны к расхождению времени - это влияет на DKIM-подписи. Устанавливаем chrony:
sudo apt install chrony -y
sudo systemctl enable chrony Весь процесс подготовки занимает около часа, но пропустить его нельзя - права доступа, сетевые настройки и PTR-запись формируют фундамент, на котором держится весь дальнейший стек.
Пошаговая установка и настройка Postfix и Dovecot
Теперь, когда сервер готов, создаем почтовый стек. Буду давать конкретные команды - именно так мы в студии «Мельница» делаем это на клиентских серверах.
Шаг 1. Установка Postfix - сервер исходящей почты
Postfix - это наш smtp сервер, он отвечает за приём и отправку сообщений между серверами:
sudo apt install postfix -y В процессе установки появится диалог выбора типа конфигурации. Выбирайте «Internet Site» - это режим прямого обмена почтой без ретранслятора. В поле «System mail name» вводите ваш домен (например, example.ru, без «mail.» в начале).
Шаг 2. Создание системного пользователя vmail
Для хранения почтовых ящиков создаем отдельного пользователя без прав входа - это важно для безопасности. Права доступа к директории хранилища настраиваем строго:
sudo groupadd -g 5000 vmail
sudo useradd -g vmail -u 5000 vmail -d /var/mail/vmail -m
sudo chown -R vmail:vmail /var/mail/vmail Шаг 3. Установка Dovecot - сервер входящей почты
Dovecot - это imap mail и POP3 сервер, сервер входящей почты для клиентских приложений:
sudo apt install dovecot-imapd dovecot-pop3d dovecot-lmtpd -y Шаг 4. Базовая конфигурация Postfix
Открываем /etc/postfix/main.cf и вставляем следующие ключевые параметры:
myhostname = mail.example.ru
mydomain = example.ru
myorigin = $mydomain
mynetworks = 127.0.0.0/8
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost Типичная ошибка здесь - оставить в mynetworks подсети, через которые открыта несанкционированная ретрансляция. Только 127.0.0.0/8, если нет веских причин добавлять другие диапазоны.
Шаг 5. Запуск служб
sudo systemctl enable postfix
sudo systemctl enable dovecot
sudo systemctl start postfix
sudo systemctl start dovecot Команда systemctl enable прописывает автозапуск - без неё после перезагрузки сервера почта встанет.
Шаг 6. Получение SSL-сертификата
Без SSL современные почтовые клиенты откажутся подключаться. Используем Certbot - почтовый ящик не заработает без валидного сертификата:
sudo apt install certbot -y
sudo certbot --standalone -d mail.example.ru Certbot автоматически получит и сохранит сертификат. Пути к файлам сертификата затем нужно будет вставить в конфигурацию Postfix и Dovecot - об этом в следующем блоке про DNS и защиту от спама.
Шаг 7. Проверка SMTP
Базовая проверка, что Postfix принимает подключения - весь процесс занимает секунды:
telnet localhost 25 В ответ должны получить строку вида «220 mail.example.ru ESMTP Postfix». Если ответ пришел - создание почтового сервера прошло успешно на базовом уровне. Следующий шаг: DNS-записи и настройка защиты от спама, без которых сервер технически работает, но письма не доходят.
DNS-записи и защита от спама: SPF, DKIM, DMARC

Можно идеально настроить Postfix, прописать Dovecot, получить SSL-сертификат - и всё равно письма будут улетать в спам. Причина почти всегда одна: не настроены DNS-записи. Это самый критичный этап для доставляемости исходящей почты. Без правильных записей smtp сервер работает, но письма получателю не доходят - Gmail и Outlook отправляют их прямиком в папку нежелательных сообщений или вовсе отклоняют.
Начнём с базовых записей. Для вашего домена нужны четыре обязательных записи:
A-запись - указывает IP-адрес почтового сервера:
mail.example.ru. IN A 203.0.113.10 MX-запись - сообщает, куда доставлять входящую почту домена:
example.ru. IN MX 10 mail.example.ru. Цифра 10 - приоритет. Если серверов несколько, у резервного ставят 20 или 30.
SPF-запись - список разрешённых серверов отправки почты. Именно она говорит принимающему серверу: «да, этот smtp сервер уполномочен отправлять письма от нашего домена»:
example.ru. IN TXT "v=spf1 mx ~all" ~all означает мягкую проверку: письма с других серверов не отклоняются, но помечаются. На старте это безопаснее, чем -all (жёсткое отклонение).
DKIM - цифровая подпись каждого письма. Принимающий сервер сверяет подпись с публичным ключом в DNS и убеждается, что письмо не подделано. Устанавливаем opendkim:
sudo apt install opendkim opendkim-tools
sudo mkdir -p /etc/opendkim/keys/example.ru
sudo opendkim-genkey -b 2048 -d example.ru -D /etc/opendkim/keys/example.ru/ -s mail -v Публичный ключ из файла mail.txt копируем в DNS как TXT-запись:
mail._domainkey.example.ru. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGS..." DMARC - политика обработки писем, которые не прошли проверку SPF или DKIM. Стал обязательным требованием для массовой отправки почты через Gmail и Outlook. Добавляем запись для домена:
_dmarc.example.ru. IN TXT "v=DMARC1; p=none; rua=mailto:admin@example.ru" Значение p=none - режим мониторинга без отклонений, подходит для старта. На почту rua будут приходить агрегированные отчёты - по ним видно, кто и с каких серверов шлёт почту от вашего домена.
Проверить все записи можно на mxtoolbox.com - там есть отдельные тесты для MX, SPF, DKIM и DMARC. Вбиваете домен и сразу видите ошибки с подсказками по исправлению.
Для защиты от спама на входящей почте ставьте rspamd - он современнее SpamAssassin, потребляет меньше памяти и умеет проверять письма по десяткам критериев. Rspamd интегрируется с Postfix через milter-протокол и фильтрует спам и вирусы ещё до того, как письмо попадёт в ящик пользователя. Установка и базовая настройка - отдельная тема, но для защиты от входящего спама это лучший вариант из доступных.
Резервное копирование и обслуживание почтового сервера

Почтовый сервер - не сайт. Если упадёт сайт, пользователь обновит страницу через час. Если пропадут письма за два года - это катастрофа, которую не исправить. Регулярное резервное копирование здесь не рекомендация, а обязательное условие нормальной работы.
Что бэкапим:
- Конфиги:
/etc/postfix/,/etc/dovecot/,/etc/opendkim/ - Почтовые ящики:
/var/mail/vmail/- здесь письма пользователей - База данных PostfixAdmin (MySQL/MariaDB) - аккаунты, псевдонимы, домены
- SSL-сертификаты:
/etc/letsencrypt/
Инструменты. Для конфигов и ящиков - rsync, быстро и без лишних зависимостей. Для полных бэкапов с историей - Restic: шифрует данные, поддерживает версионирование, умеет работать с S3-совместимым объектным хранилищем напрямую.
Пример crontab-строки для ежедневного бэкапа ящиков через rsync на резервный сервер:
0 3 * * * rsync -az --delete /var/mail/vmail/ backup@backup-server:/backups/vmail/ Для Restic с выгрузкой в объектное хранилище (например, Selectel или любой S3-совместимый):
0 2 * * * restic -r s3:s3.example.com/my-bucket backup /etc/postfix /etc/dovecot /var/mail/vmail Хранить бэкапы на том же сервере - бессмысленно: если диск умрёт, потеряете и почту, и бэкапы. Объектное хранилище с большим объемом дешевле второго VPS и надёжнее локальной копии.
Мониторинг. Раз в неделю проверяйте состояние сервисов:
systemctl status postfix dovecot
journalctl -u postfix --since "1 hour ago"
tail -n 100 /var/log/mail.log В логах видно всё: доставленные письма, отказы, попытки авторизации. Если вдруг резко выросло количество исходящих - возможно, один из ящиков скомпрометирован.
Типичные проблемы, с которыми приходят клиенты:
- Письма перестали отправляться - первым делом смотрите
df -h. Переполненный диск блокирует очередь Postfix - Письма уходят в спам - проверяйте DKIM и SPF через mxtoolbox, смотрите заголовки письма
- Dovecot не стартует - чаще всего конфликт портов или проблема с SSL-сертификатом
Из личной практики: один клиент из сферы логистики пришёл с жалобой, что почта «зависла». Открываю сервер - диск забит под завязку архивами писем за три года, место для новых сообщений просто закончилось. Настроили Restic с выгрузкой в объектное хранилище, добавили ротацию логов через logrotate, настроили оповещение на почту при заполнении диска выше 80%. С тех пор проблем нет. Резервное копирование и мониторинг лучше настроить один раз в начале, чем разбираться с последствиями после инцидента.
Также не забывайте обновлять систему. Postfix и Dovecot получают обновления безопасности, и apt upgrade раз в месяц - минимальная гигиена для любого боевого сервера. После обновления убедитесь, что сервисы стартовали: systemctl enable postfix dovecot гарантирует автозапуск при перезагрузке сервера.
Итог: с чего начать прямо сейчас
Создание почтового сервера с нуля выглядит сложным только до первого раза. На практике это линейный процесс из нескольких шагов, каждый из которых понятен и логичен. Свой почтовый сервер даёт полный контроль над корпоративной электронной почтой: вы не зависите от политик Google, не боитесь заморозки аккаунта, не платите за каждый почтовый ящик отдельно.
Вот чеклист для запуска собственного почтового сервера:
- Выбрать VPS - минимум 1-2 ГБ RAM, статический IP, желательно не в домашней сети провайдера
- Установить Ubuntu 22.04 Server - стабильная база с долгосрочной поддержкой
- Настроить hostname и PTR-запись - без PTR письма сразу попадут в спам
- Установить Postfix и Dovecot - связка MTA + MDA для приёма и отправки почты
- Прописать DNS-записи - MX, SPF, DKIM, DMARC для домена, без этого доставляемость будет нулевой
- Настроить SSL через Certbot - шифрование соединений обязательно
- Подключить антиспам - rspamd или SpamAssassin для фильтрации входящего потока
Два частых вопроса, которые задают перед стартом:
Сколько стоит? Минимально - от 300-500 рублей в месяц за VPS. Если домен уже есть, это все расходы. Certbot выдаёт SSL бесплатно, Postfix, Dovecot и rspamd - open source. При десяти сотрудниках это дешевле любого корпоративного тарифа Google Workspace или Яндекс 360.
Сколько времени займёт настройка? Новичку, который работает по инструкции впервые, понадобится 4-8 часов. Опытному системному администратору - 1-2 часа. Большая часть времени уходит на ожидание обновления DNS-записей (до 24 часов) и проверку через mxtoolbox.
Если хотите ускориться - посмотрите на Mailcow. Это Docker-стек, который разворачивает полноценный почтовый сервер с веб-интерфейсом за пару команд. Хорошая альтернатива для тех, кому важна скорость запуска, а не понимание каждого компонента изнутри.
Начинайте с ручной сборки - она даст понимание, которое потом поможет чинить любые проблемы. Mailcow можно освоить позже, когда уже понятно, что происходит под капотом.
Эта статья носит информационный характер и основана на личном опыте автора. Интерфейсы сервисов и команды операционных систем регулярно меняются - рекомендую проверять актуальность инструкций на официальных ресурсах. Если у вас остались вопросы - задайте их в комментариях.
Список литературы
- Wietse Venema - Postfix Basic Configuration // postfix.org, 2024
- Dovecot Core Team - Dovecot: The Secure IMAP server. Официальная документация // doc.dovecot.org, 2024
- J. Klensin (IETF) - RFC 5321: Simple Mail Transfer Protocol // RFC Editor / IETF, 2008
- Cloudflare - What are DMARC, DKIM, and SPF? // Cloudflare Learning Center, 2025











