dummy-smtp-has-pipelining

Global

Объявляет ли поддельный приёмник расширение PIPELINING
в конфигурации это строкаdummy-smtp-has-pipelining falseвнутри блока Global
Разница, которая меняет результат прогона сильнее всего

Расширение PIPELINING позволяет отправителю посылать команды подряд, не дожидаясь ответа на каждую. Эта строка решает, объявляет ли поддельный приёмник его поддержку. Умолчание — false.

Вторая сторона той же договорённости. На стороне отправки расширением управляет ignore-pipelining: там решают, пользоваться ли им; здесь — объявлять ли.

Из трёх строк has-* эта весомее прочих. Конвейер убирает ожидание после каждой команды, и на письме со многими получателями разговор становится короче в разы. Прогон без него меряет длинный разговор — и упирается в потолок раньше, чем упрётся боевая отправка.

Главная ловушка — задержка умножает ошибку. Если рядом задан dummy-smtp-latency, каждая команда без конвейера стоит полного оборота. Сто миллисекунд задержки и десяток команд дают лишнюю секунду на разговор — а с конвейером её не было бы. Две настройки вместе искажают результат сильнее, чем каждая по отдельности.
Что делает Хаб. Не пишет: механизм на узлах не поднимается. Если появится, эту строку надо включать в первую очередь: крупные почтовики конвейер объявляют, и без него прогон описывает разговор, которого не бывает.
Рекомендуемые значения

Включайте почти всегда. Крупные приёмники расширение объявляют, и боевая почта идёт через него.

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

Умолчание — только для нижней границы. Замер самого тяжёлого возможного разговора тоже имеет смысл, но планировать по нему нельзя.

Замечание про умножение задержки на число команд — наше. Из руководства здесь умолчание и назначение строки: поддерживают ли поддельные соединения это расширение.
Пример в конфигурации
# конвейер и задержка вместе — иначе прогон уезжает кратно
dummy-smtp-port 2525
dummy-smtp-latency 100
dummy-smtp-has-pipelining true
Без подсвеченной строки каждая команда стоила бы сто миллисекунд ожидания, и разговор в прогоне растянулся бы в разы против боевого.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

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

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

Оставляют умолчание при заданной задержке

наш опыт

Чем чреватоКаждая команда стоит полного оборота по сети. Разговор в прогоне растягивается в разы против боевого, и потолок выходит заниженным — планирование по нему избыточно осторожное.
Как заметитьЗамеренная пропускная способность заметно ниже реальной отправки при тех же лимитах.
Как правильноВключить конвейер — так же, как его объявляют настоящие приёмники.

Правят на стороне отправки вместо подделки

наш опыт

Чем чреватоignore-pipelining управляет нашим поведением с чужими приёмниками, а не тем, что объявляет подделка. Правка не в том месте выглядит применённой и на прогон не влияет.
Как заметитьЗначение меняли, длина разговора в прогоне прежняя.
Как правильноДля подделки править эту строку, для боевой отправки — ту.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
dummy-smtp-has-pipelining <boolean>
Значения
yes или no; true и false принимаются наравне с ними
Умолчание
false § 3.3.1.57.5
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
Global
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Строка уровня узла: пишется в корне файла, не внутри блока. Наследования у неё нет. Подхватывается по pmta reload; на уже установленные соединения не влияет.
Как проверить на узле
Значение задаётся в конфигурации; объявляет ли подделка расширение — видно по её ответу на EHLO:
grep -n dummy-smtp-has-pipelining /etc/pmta/config
printf 'EHLO test\r\nQUIT\r\n' | nc 127.0.0.1 2525
В ответе подделки строка с расширением появляется только при включённой настройке. Хаб этот механизм не задействует.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Планирование мощности