К основному содержимому

Postfix: настройка почтового сервера на VPS

Хостинг и cPanel · 28.02.2025 · 5 мин чтения
Иллюстрация к статье «Postfix: настройка почтового сервера на VPS»
Важно для серверов ZevsHost: исходящие SMTP-порты 25, 465 и 587 на VDS закрыты по умолчанию — это защита сети от спам-рассылок. Описанная ниже прямая доставка на новом сервере работать не будет, как и внешние релеи по SMTP. Проверенным клиентам порты открываем по заявке в поддержку, каждый случай рассматриваем отдельно. Если письма нужны сразу — отправляйте через HTTP API почтового сервиса: он работает по 443 и под ограничение не попадает. На виртуальном хостинге и выделенных серверах ограничения нет.

Установка Postfix

apt install postfix -y
# При установке выберите: Internet Site
# System mail name: yourdomain.com

Основные параметры main.cf

# /etc/postfix/main.cf
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, $mydomain

# TLS
smtpd_tls_cert_file = /etc/letsencrypt/live/yourdomain.com/fullchain.pem
smtpd_tls_key_file  = /etc/letsencrypt/live/yourdomain.com/privkey.pem
smtpd_use_tls = yes
smtpd_tls_security_level = may

# Ограничения ретрансляции
smtpd_relay_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

Проверка настройки

# Тест отправки
echo "Test email" | mail -s "Subject" test@example.com

# Просмотр очереди
mailq

# Логи
tail -f /var/log/mail.log
⚠️ Не запускайте открытый relay (open relay) — ваш сервер станет источником спама и попадёт в блок-листы за несколько часов.
💡 Для продакшн-почты рассмотрите готовые решения: Mailcow, iRedMail или Modoboa — они включают Postfix, Dovecot, Rspamd и веб-интерфейс.

Частые ошибки при настройке Postfix

Большинство проблем с почтой на VPS видны сразу в логах — научитесь их читать.

554 5.7.1 <user@example.com>: Relay access denied

Сервер отклоняет письмо, потому что отправитель не входит в mynetworks и не прошёл SASL-авторизацию, а получатель — не локальный домен. Проверьте smtpd_relay_restrictions в main.cf: если приложение шлёт письма с того же сервера через localhost, добавьте 127.0.0.1/32 в mynetworks.

connect to 127.0.0.1[127.0.0.1]:10024: Connection refused (port 10024)

Postfix настроен на передачу писем через content-фильтр (Amavis, Rspamd) на порту 10024, но сам фильтр не запущен или не установлен. Проверьте systemctl status rspamd либо уберите строку content_filter из main.cf, если фильтрация не нужна.

Received-SPF: fail (domain owner discourages use of this host)

Получатель проверил SPF-запись домена и не нашёл в ней IP вашего сервера. Письмо помечается как подозрительное или сразу отклоняется. Добавьте IP-адрес VPS в SPF-запись домена — см. настройку SPF, DKIM и DMARC.

Maildir и mbox: форматы хранения почты

ПараметрMaildirmbox
ФорматКаждое письмо — отдельный файлВсе письма в одном файле
Блокировки при доступеНе нужныТребуются (file locking)
Надёжность при сбоеВысокаяРиск повредить весь ящик
Поддержка IMAP-серверовDovecot, CourierТолько устаревшие

По умолчанию современный Postfix с Dovecot использует Maildir — задаётся параметром home_mailbox = Maildir/ в main.cf. Переходить на mbox сегодня нет причин.

Когда Postfix на VPS не подходит

Разворачивать собственный почтовый сервер ради 10–20 транзакционных писем в день — избыточно: проще подключить SMTP-relay (SendGrid, Mailgun, Amazon SES) без забот о репутации IP и SPF/DKIM. Свежий IP-адрес VPS не имеет истории отправок — первые письма почтовые провайдеры массово отправляют в спам, пока IP не «прогреется» неделями постепенного роста объёма. Если PTR-запись для IP-адреса сервера не настроена (см. обратный DNS и PTR), крупные почтовые сервисы вроде Gmail отклоняют письма без объяснений — это первое, что нужно проверить до разбора остальных настроек.

Проверка результата

Не полагайтесь только на «письмо дошло» — проверьте очередь, шифрование и подпись отдельно:

# Очередь писем
mailq

# Тест TLS-соединения
openssl s_client -connect mail.example.com:587 -starttls smtp

# Проверка DKIM-ключа
opendkim-testkey -d example.com -s mail -vvv

Лучший внешний тест — mail-tester.com: отправьте письмо на выданный адрес и получите оценку по SPF, DKIM, DMARC, чёрным спискам и содержимому письма. Оценка ниже 8/10 обычно означает, что нужно исправить хотя бы один из пунктов выше.

Перед перезапуском службы всегда проверяйте синтаксис конфигурации командой postfix check — опечатка в main.cf не всегда роняет Postfix сразу, но может привести к тихому отказу приёма писем на новых подключениях. Такую ошибку легко пропустить, потому что сервис формально продолжает работать, а в логах видна лишь одна строка отказа на конкретное подключение, а не явная причина.

Частые вопросы

Сколько времени занимает открытие портов 25/465/587 после обращения в поддержку, и можно ли обойтись без них вообще?

Точный срок зависит от конкретного случая — заявку рассматривают индивидуально, а не по шаблону, проверяя репутацию клиента и цель использования портов. Обойтись без открытия портов можно, если отправлять письма через HTTP API почтового сервиса: он работает по порту 443 и ограничению не подчиняется, так что для многих проектов отдельная заявка вообще не требуется.

Нужно ли дополнительно устанавливать Dovecot, чтобы читать почту в почтовом клиенте, или Postfix справляется с этим сам?

Да, Postfix только принимает и отправляет почту по SMTP, а для доступа к ящику через почтовый клиент по IMAP или POP3 нужен отдельный сервис — чаще всего Dovecot. Без него письма технически доставляются и сохраняются на сервере, но прочитать их в Outlook, Thunderbird или на телефоне не получится.

Если переносить уже работающий почтовый сервер на новый VPS, нужно ли снова «прогревать» IP-адрес?

Да, репутация привязана к конкретному IP-адресу, а не к домену или истории переписки, поэтому при смене сервера прогрев начинается заново. Чтобы снизить риск попадания в спам на новом адресе, увеличивайте объём отправки постепенно, следите за SPF и DKIM и по возможности сохраните прежний IP, если провайдер такую миграцию поддерживает.

Безопасно ли держать Postfix и веб-сервер на одном и том же VPS?

Само совмещение не опасно: Postfix и веб-сервер — независимые службы, которые занимают разные порты и обычно отлично работают на одном VPS. Важнее другое — изолировать конфигурацию и логи друг от друга и следить, чтобы уязвимость в веб-приложении не позволила злоумышленнику превратить сервер в источник спама через тот же Postfix.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке