psj-notes
~/home ~/series ~/archive

07. Postfix: отправка писем через Яндекс

17.07.2026 Серия: Настройка VDS сервера с VPN "postfix" "email" "яндекс"

Зачем серверу отправлять письма

Мониторинг, бэкапы, оповещения от fail2ban, unattended-upgrades — все эти сервисы умеют слать email. Если не настроить почту, уведомления останутся в локальном почтовом ящике root, читать который никто не будет.

Мы настроим Postfix как smarthost (релей) через SMTP Яндекса. Письма будут уходить с вашего реального ящика, проходить DKIM и SPF — а значит, не попадать в спам.

Установка Postfix и пакетов

sudo apt update
sudo apt install postfix mailutils libsasl2-modules -y

Во время установки появится окно конфигурации. Выберите Internet Site и введите полное доменное имя (FQDN) вашего сервера, например vds.example.com.

Если окно не появилось — переконфигурируем вручную:

sudo dpkg-reconfigure postfix

Конфигурация smarthost

Редактируем главный конфиг /etc/postfix/main.cf:

sudo nano /etc/postfix/main.cf

Приводим к такому виду (остальное можно оставить по умолчанию):

myhostname = vds.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = loopback-only
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost = [smtp.yandex.ru]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_security_level = encrypt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

Разберём ключевое:

  • relayhost — отправляем всё через Яндекс
  • smtp_sasl_auth_enable — включаем авторизацию
  • inet_interfaces = loopback-only — Postfix слушает только локальный интерфейс (наружу не торчит)

Настройка аутентификации

Создаём файл с паролями:

sudo nano /etc/postfix/sasl_passwd

Содержимое:

[smtp.yandex.ru]:587 ваш_логин@yandex.ru:пароль_приложения

Пароль приложения нужно сгенерировать в настройках Яндекса: Безопасность → Пароли приложений. Создайте пароль для «Почты» и укажите его. Основной пароль от Яндекса здесь указывать нельзя — он не пройдёт.

Конвертируем в базу данных:

sudo postmap /etc/postfix/sasl_passwd
sudo chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Проверка конфигурации

sudo postfix check

Если команда не вывела ошибок — всё в порядке. Перезагружаем:

sudo systemctl restart postfix

Смотрим логи:

sudo journalctl -u postfix --no-pager -n 30

Тестовая отправка

Отправляем письмо через mailutils:

echo "Тело письма: сервер работает исправно" | mail -s "Тест Postfix от $(date)" ваш_email@yandex.ru

В /var/log/mail.log проверяем статус:

sudo tail -f /var/log/mail.log

Если письмо не пришло — смотрим причину в логе. Типичные проблемы: неверный пароль приложения, заблокированный SMTP-доступ в настройках Яндекса, или неправильный relayhost.

Настройка root alias

Чтобы письма для root приходили на ваш реальный ящик, редактируем /etc/aliases:

root: ваш_email@yandex.ru

Применяем:

sudo newaliases

Теперь все оповещения от системы (отчёт unattended-upgrades, fail2ban, логи) будут прилетать на почту.

Итог

Postfix настроен как smarthost и раздаёт письма через Яндекс. Теперь автоматические уведомления не скапливаются в системе — они ждут вас в почтовом ящике. В следующей части развернём веб-сервер с Nginx, PHP и бесплатным SSL.

Комментарии

Комментарии пока не подключены.