Начнём честно: идея иметь собственный почтовый сервер звучит круто, но на практике многие сталкиваются с разочарованием — письма попадают в спам, провайдер блокирует подключение, сертификаты не продлеваются, а в логах царит хаос. Эта статья проведёт вас шаг за шагом — от подготовки домена и IP до настройки Postfix, Dovecot, DKIM, SPF и DMARC, объяснит ключевые ошибки и даст практический план действий, чтобы вы не теряли время на бессмысленные эксперименты.
Краткий план компонентов и зачем они нужны Перед тем как копаться в конфигурациях, полезно понять, из чего состоит современный почтовый сервер и какие блоки влияют на доставляемость.
Компонент Зачем нужен Примеры Домен и DNS Адрес для писем, настройки SPF/DKIM/DMARC, MX-запись example.com, mail.example.com Статический IP и PTR Обратная запись нужна получателям для доверия 1.2.3.4 -> mail.example.com MTA (Mail Transfer Agent) Принимает и отправляет SMTP-почту Postfix, Exim MDA и IMAP/POP3 Хранение почты и доступ пользователей Dovecot, Courier Антиспам/антивирус Фильтрация нежелательной почты и вредоносных вложений Rspamd, SpamAssassin, ClamAV DKIM/SPF/DMARC Подпись, политика и защита от подделки отправителя OpenDKIM, TXT записи TLS Шифрование транспорта SMTP/IMAP Let’s Encrypt, Certbot
Подготовка окружения и выбор хоста Первое, что нужно — стабильный сервер с публичным статическим IP. Если вы используете VPS с общим пулом динамических IP, вероятность попадания в чёрные списки выше. Лучше взять выделенный IP у приличного провайдера и тут же попросить их настроить PTR (обратную запись) на имя mail.. PTR обязателен для хорошей репутации.
Как выбирать провайдера и IP Проверьте репутацию подсети: инструменты типа mxtoolbox или spamhaus показывают, не находится ли IP в RBL. Уточните у провайдера возможность открыть исходящие порты SMTP (25). Многие хостинги блокируют 25 по умолчанию. Если у вас домашний интернет или динамический IP, лучше не пытаться отправлять почту напрямую — крупные почтовые сервисы будут блокировать такие соединения. Настройка DNS: MX, A, PTR, SPF, DKIM, DMARC
Правильные DNS-записи — это фундамент. Ошибки здесь убьют доставляемость быстрее всего.
Обязательные записи MX запись указывает приёмник почты: example.com MX 10 mail.example.com. A запись связывает имя mail.example.com с вашим IP. PTR на стороне провайдера должен указывать IP -> mail.example.com. SPF SPF — простой текстовый механизм, который говорит, кто может отправлять почту от имени домена. Пример минимальной записи:
example.com. TXT "v=spf1 mx ip4:1.2.3.4 -all" Эта запись разрешает отправку с MX и с указанного IP, всё остальное запрещено.
DKIM DKIM подписывает исходящие письма приватным ключом; публичный ключ публикуется в DNS. Стандартный рабочий ход: создаёте селектор, генерируете ключи и добавляете TXT запись типа selector._domainkey.example.com.
DMARC DMARC даёт инструкцию получателям, как обрабатывать письма, которые не прошли SPF/DKIM. Пример начальной записи для мониторинга:
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:postmaster@example.com" Сначала ставьте p=none для сбора статистики, позже ужесточайте до quarantine или reject и подключайте отчёты.
Выбор программного стека Есть два подхода: собрать гибкий набор компонент или установить готовый стек. Я рекомендую начать с классики: Postfix для MTA и Dovecot для IMAP/POP3. В связке с OpenDKIM и Rspamd вы получите управляемую и надёжную систему.
Готовые сборки и альтернативы Mailcow, iRedMail, Modoboa — быстро разворачивают всё целиком, полезно для теста или небольших команд. Zimbra и Microsoft Exchange — тяжёлые решения для крупного бизнеса. Если нужен простой SMTP-relay, можно использовать облачный сервис типа SendGrid. Быстрая установка и базовая конфигурация Postfix и Dovecot Ниже — упрощённая последовательность действий для Debian/Ubuntu. Это скелет: настройки под ваш случай потребуют доработки.
Установите пакеты: apt install postfix dovecot-core dovecot-imapd. В Postfix укажите myhostname = mail.example.com, mydestination = example.com, inet_interfaces = all. Откройте порт 587 для Submission и настройте поддержку SASL через Dovecot. В Dovecot активируйте Maildir, настроите authenticate и подключите базу пользователей (если виртуальные пользователи). Пример ключевых строк в main.cf (очень базово):
myhostname = mail.example.com
myorigin = /etc/mailname
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination DKIM через OpenDKIM OpenDKIM действует как milter между Postfix и почтой. Нужны две вещи: генерируем ключ и публикуем публичный ключ в DNS.
Генерация ключа: opendkim-genkey -t -s selector -d example.com. Добавление публичного ключа в TXT запись selector._domainkey.example.com. Настройка /etc/opendkim.conf и подключение milter к Postfix. После установки отправьте тестовое письмо и проверьте заголовки на предмет DKIM-Signature.
Антиспам и антивирус Rspamd — это современная и быстрая система для оценки спама. Она даёт гибкий набор правил, позволяет интегрировать greylisting, DNSBL и собственные фильтры. ClamAV полезен для сканирования вложений. Важный момент: не перегружайте пользователей ложными срабатываниями. Начните с мягкой конфигурации и повышайте строгость по мере накопления статистики.
Тестирование и проверка После настроек пройдитесь чек-листом:
MX и A записи корректны и видны в публичном DNS. PTR указывает на mail.example.com. SPF, DKIM и DMARC записи опубликованы и валидны. SMTP отвечает на 25 и 587, STARTTLS работает, сертификат действителен. Письма не проходят как open relay. Проверьте доставляемость через сервисы mail-tester.com и mxtoolbox. Веб-почта и управление пользователями Для доступа пользователей удобен Roundcube или Rainloop. Чтобы управлять виртуальными доменами и пользователями, используйте PostfixAdmin или храните пользователей в базе (MySQL/Postgres). Виртуальные пользователи — гибкий выбор для хостинга нескольких доменов на одном сервере.
Maildir vs mbox Рекомендую Maildir: удобнее для параллельного доступа, меньше проблем с повреждениями при сбое. Dovecot легко работает с Maildir и поддерживает квоты.
Безопасность и поддержка Обязательные меры: автоматическое продление TLS сертификатов через Certbot, настройка fail2ban для защиты от перебора паролей, регулярные бэкапы /var/mail и базы данных пользователей, ротация логов. Мониторинг почтовой очереди и метрик поможет поймать проблемы вовремя.
Доставляемость писем: практика и советы Чтобы письма не тонул в спаме, важно не только технически всё настроить, но и соблюдать правила отправки:
Умеренные объёмы отправки, постепенное увеличение (warming up) — особенно важно для новых IP. Чистить списки подписчиков, не отправлять на мёртвые адреса. Обрабатывать bounce и отписки автоматически. Следить за репутацией IP и домена в RBL и провайдерах. Типичные ошибки и как их исправить Ошибка Причина Как исправить Письма уходят в спам Нет DKIM/SPF/DMARC или плохая репутация IP Настроить SPF/DKIM/DMARC, проверить репутацию IP, снизить объёмы рассылки Почта не принимается внешними серверами Порт 25 закрыт или нет PTR Открыть порт 25, попросить провайдера настроить PTR Проблемы с аутентификацией Неправильный SASL/Dovecot или права на сокет Проверить настройки Dovecot и права на /var/spool/postfix/private/auth
Пошаговый план на первую неделю Купить домен, заказать VPS с выделенным IP и попросить PTR. Настроить базовые DNS (A, MX) и убедиться, что DNS распространяется. Установить Postfix и Dovecot, включить Submission и STARTTLS. Получить и поставить TLS сертификат от Let’s Encrypt. Подключить OpenDKIM и опубликовать DKIM public key в DNS. Настроить SPF и добавить DMARC с p=none для мониторинга. Проверить отправку на тестовые сервисы, настроить Rspamd, включить логирование и мониторинг. Итог Создать почтовый сервер самостоятельно — вполне реальная задача, если подойти к ней методично. Самое дорогое в проекте — время, необходимое для настройки и поддержания хорошей репутации адреса отправки. Начните с небольших объёмов, тщательно настройте DNS, TLS, DKIM и SPF, и постепенно усложняйте систему по мере потребностей. Если нужно, пришлите детали вашего окружения — домен, провайдера, цель использования — и я помогу составить конкретный план конфигурации.