auth-username

<domain>

Имя пользователя, которым узел представляется приёмнику
в конфигурации это строкаauth-usernameвнутри блока <domain>
Когда отправляют не в открытый интернет, а через чужой релей

Обычная отправка почты приёмнику аутентификации не требует. Она нужна там, где узел отдаёт письма не конечному получателю, а промежуточному релею — своему же шлюзу, услуге доставки, корпоративному узлу, — и тот пускает только своих.

Условие включения составное. Аутентификация начинается, когда совпало всё сразу: приёмник объявил расширение AUTH, среди механизмов есть поддерживаемый узлом, и хотя бы одна из двух строк — эта или auth-password — непуста.

Поддерживаются три механизма: CRAM-MD5, LOGIN и PLAIN. Первый не передаёт пароль по сети; два других передают, и потому их применение на незашифрованном соединении отдельно ограничено строкой use-unencrypted-plain-auth.

Главная ловушка — «хотя бы одна из двух». Заполнив только имя и забыв пароль, вы всё равно включаете аутентификацию — узел начнёт её, с пустым паролем, и получит отказ. Отказ придёт от приёмника, выглядит как проблема доставки, а причина — в половине заполненной пары.
Что делает Хаб. Не пишет: узлы Хаба отправляют напрямую получателям, а не через промежуточный релей. Строка понадобится, если появится сценарий доставки через чужой шлюз.
Рекомендуемые значения

Заполняйте пару целиком. Непустая половина включает аутентификацию сама по себе.

Отдельная учётная запись на каждый узел. Общая на весь парк не даёт ни отозвать доступ точечно, ни понять по журналам релея, кто именно отправлял.

Пустая строка снимает унаследованное значение — так выключают аутентификацию для одного получателя, если она задана шире.

Требование отдельной учётной записи на узел — наше. Из руководства здесь составное условие включения, три поддерживаемых механизма и очистка пустой строкой.
Пример в конфигурации
# отдаём почту через промежуточный релей, он пускает только своих
<domain relay.example.com>
    auth-username relay-user    auth-password s3cr3t
</domain>
Пара заполняется целиком: непустая половина включит аутентификацию сама, и попытка уйдёт с пустым паролем.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Заполняют только имя

§ 3.3.10.62

Чем чреватоАутентификация всё равно включается — с пустым паролем. Приёмник отвечает отказом, и выглядит это как проблема доставки, а не как незаполненная строка конфигурации.
Как заметитьОтказы с упоминанием аутентификации у одного получателя.
Как правильноЗаполнить пару целиком либо очистить обе строки пустым значением.

Одна учётная запись на весь парк

наш опыт

Чем чреватоОтозвать доступ одному узлу нельзя — только всем сразу. В журналах релея все узлы выглядят одинаково, и разобраться, чей поток вызвал вопросы, невозможно.
Как заметитьОдно и то же имя в конфигурации всех узлов.
Как правильноЗавести отдельную учётную запись на узел.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
auth-username <string>
Значения
имя пользователя строкой; пустая строка снимает унаследованное значение
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. Пустая строка (“”) снимает унаследованное значение. Подхватывается по pmta reload; на открытые соединения не влияет.
Как проверить на узле
Значение печатает команда настроек очереди; объявляет ли приёмник расширение и какие механизмы — видно в его ответе на EHLO:
pmta show settings relay.example.com/vmta1 | grep -i auth-username
grep -i '250-AUTH' /var/log/pmta/pmta.log | tail -5
Пароль в выводе настроек виден: команду не стоит выполнять там, где вывод кто-то читает через плечо. Хаб исходящую аутентификацию не задаёт.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Разобраться с доставляемостью · Настроить темп под провайдера