http-delivery-url

<domain>

Адрес, по которому очередь отдаёт письма запросом POST
в конфигурации это строкаhttp-delivery-urlвнутри блока <domain>
Куда уходит запрос с письмом

Работает у очереди вида http-delivery (type) и для неё обязателен. Задаёт адрес, по которому узел шлёт запрос POST с письмом в виде объекта JSON — по одному письму на запрос.

Адрес ограничен. Он обязан быть абсолютным и начинаться со схемы http или https. В нём не должно быть учётных данных, строки запроса и якоря — руководство перечисляет эти три части отдельно. Хост — имя или адрес; адрес IPv6 берётся в квадратные скобки. Порт необязателен: без него подразумевается 443 для https и 80 для http.

Учётные данные — не сюда. Раз их нельзя вписать в адрес, заголовок авторизации кладут в файл и подключают строкой http-delivery-extra-headers.

Главная ловушка — схема http вместо https. По этому адресу уходит всё письмо целиком, вместе с адресами конверта и заголовками. Незашифрованный запрос выносит содержимое писем в сеть в открытом виде — и обычно вместе с заголовком авторизации, который вы приложили.
Что делает Хаб. Не пишет: очередей этого вида не заводит. Когда заведёт, адрес будет его собственный — обработчик отказов и жалоб у Хаба уже работает по HTTP.
Рекомендуемые значения

Только https. По этому адресу уходит содержимое писем; незашифрованный канал здесь неуместен ни при каких условиях.

Имя вместо адреса. Обработчик переезжает, адрес меняется — имя переживёт переезд, а строка в конфигурации останется прежней.

Путь стоит версионировать. /api/v1/… даёт возможность сменить формат обработки, не трогая конфигурацию узлов.

Требования про шифрованную схему, имя и версию пути — наши. Из руководства здесь обязательность строки для этого вида, три запрещённые части адреса, запись адреса IPv6 и порты по умолчанию.
Пример в конфигурации
# обработчик жалоб: только https, имя, версионированный путь
<domain feedback.example.com>
    type http-delivery
    http-delivery-url https://hub.example.com/api/v1/feedback</domain>
Порт не указан — подразумевается 443, потому что схема https. Для http подразумевался бы 80.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Оставляют схему http

наш опыт

Чем чреватоПо адресу уходит всё письмо вместе с адресами конверта и заголовками, а рядом — заголовок авторизации из файла дополнительных заголовков. Всё это идёт по сети открытым текстом.
Как заметитьВ конфигурации адрес начинается с http://.
Как правильноПеревести обработчик на https и исправить строку.

Вписывают логин и пароль в адрес

§ 3.3.10.112.1

Чем чреватоРуководство прямо запрещает часть с учётными данными в этом адресе. Строка не примется, и очередь останется без адреса.
Как заметитьОчередь вида http-delivery не отправляет ничего.
Как правильноВынести авторизацию в файл заголовков и подключить http-delivery-extra-headers.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
http-delivery-url <url>
Значения
абсолютный адрес со схемой http или https; без учётных данных, строки запроса и якоря; адрес IPv6 в квадратных скобках; порт необязателен
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<domain>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Значение сливается по блокам <domain> от общего к частному: побеждает наиболее подходящий блок, а не последний по файлу. В очереди другого вида строка игнорируется. Подхватывается по pmta reload; письма, уже стоящие в очереди, уедут по новому адресу.
Как проверить на узле
Действующий адрес печатает команда настроек очереди; доступен ли он — проверяется обычным запросом:
pmta show settings feedback.example.com/vmta1 | grep -i http-delivery-url
curl -s -D - -o /dev/null -X POST https://hub.example.com/api/v1/feedback | head -1
Ответ вне семейства 2xx означает, что письма будут копиться в очереди: узел считает такой ответ временной неудачей. Хаб очередей этого вида не заводит.
В Хабе
Цена ошибки
опасно: последствия переживут откат
Сценарии
Подключить платформу отправки