Postfix: Relay access denied, 554 5.7.1

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Настройте mynetworks и включите SMTP-аутентификацию.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Диагностика
  5. Настройка аутентификации
  6. Проверка

#Что означает ошибка

Сообщение
Relay access denied

Ошибки Postfix «554 5.7.1 Relay access denied» и «SMTP authentication failed» говорят, что сервер не разрешает пересылку почты клиенту: нет аутентификации, неверные smtpd_recipient_restrictions или mynetworks.

Нужно настроить SASL-аутентификацию.

Не открывайте open relay — это приведёт к блокировке сервера за спам.

Настройте mynetworks и включите SMTP-аутентификацию.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Нет аутентификацииSMTP.Проявляется как «Relay access denied» или близкий по смыслу сбой.Включите.
mynetworksНастройка.Проявляется как «Relay access denied» или близкий по смыслу сбой.Исправьте.
ДоменНе принимаем.Проявляется как «Relay access denied» или близкий по смыслу сбой.Добавьте.
ПортЗакрыт.Проявляется как «Relay access denied» или близкий по смыслу сбой.Откройте.

#Пошаговое решение

  1. Проверьте конфигурациюАдминистратор Postfix открывает SSH-терминал на сервере и выполняет postconf -n | grep -E "mynetworks|smtpd_(relay|recipient|sasl)_restrictions|smtpd_sasl_auth_enable". Сопоставьте время отказа 554 с журналом почты (journalctl -u postfix или /var/log/mail.log). Уточните, поступает письмо от внешнего получателя на ваш домен или пользователь пытается отправить сообщение наружу: это разные сценарии.
  2. Включите SASLЕсли внешний пользователь отправляет через ваш SMTP на другой домен, проверьте, предусмотрена ли аутентификация на порту submission (обычно 587). В почтовом клиенте откройте настройки учётной записи → исходящий сервер SMTP, укажите адрес и учётные данные провайдера, порт 587 и STARTTLS по его инструкции. Не включайте анонимную пересылку и не добавляйте весь Интернет в mynetworks.
  3. Задайте ограничения получателейДля администратора: в конфигурации используйте штатные ограничения relay (smtpd_relay_restrictions) с допуском аутентифицированных пользователей и разрешённых сетей, сохраняя reject_unauth_destination. Прежде чем менять Postfix, выполните postconf -n и создайте копию main.cf; синтаксис зависит от версии и схемы SASL, поэтому не копируйте одиночные директивы из примера вслепую.
  4. Включите порт 587 с TLSЕсли клиенты должны пользоваться портом 587, проверьте, включена ли служба submission в /etc/postfix/master.cf, выбран ли корректный сертификат TLS и доступен ли порт извне по разрешённым адресам. Через sudo ss -ltnp | grep :587 выясните, слушает ли порт сервер; включайте доступ через межсетевой экран только в соответствии с политикой организации.
  5. Протестируйте отправкуПосле проверки синтаксиса sudo postfix check примените корректную конфигурацию через sudo postfix reload, а затем отправьте тестовое письмо с авторизованного клиента. В журнале проверьте успешную постановку в очередь и доставку; отдельно проверьте, что неавторизованный посторонний клиент всё ещё не может пересылать письма через сервер. Для проверки с swaks не помещайте пароль в историю команд или публичный отчёт.

#Диагностика

Проверьте конфигурацию: postconf -n | grep -E "smtpd_(recipient|sasl|relay)|mynetworks|myhostname". Журнал: /var/log/mail.log или journalctl -u postfix. «Relay access denied» значит, что получатель не в ваших доменах, а отправитель не аутентифицирован.

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

В main.cf: smtpd_sasl_auth_enable = yes, smtpd_sasl_type = dovecot, smtpd_sasl_path = private/auth, smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination. В Dovecot включите сокет auth для Postfix. Включите TLS и порты 587/465 в master.cf (submission). Перезапустите: sudo systemctl restart postfix dovecot.

#Проверка

Тест: swaks --to user@example.com --from me@mydomain.ru --server mail.mydomain.ru:587 --auth LOGIN --auth-user me --tls (swaks). Проверьте PTR, SPF, DKIM, DMARC на mail-tester.com. Не добавляйте 0.0.0.0/0 в mynetworks.

Linux · Терминал (Bash)КомандаНужен sudo
Проверка параметров Postfix и просмотр журнала.
postconf -n | grep -E "smtpd_(relay|recipient|sasl)|mynetworks"
sudo postfix check
# Только после изменения конфигурации: sudo postfix reload
sudo journalctl -u postfix -n 50 --no-pager

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 1 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.