<domain>критичноХаб задаёт сам
Второй будильник пары. bounce-after задаёт срок, этот — частоту: через сколько пробовать снова после того, как очередь попала в режим повторов. Задаётся одним интервалом или лесенкой — списком через запятую, до тридцати ступеней.
Каждая ступень отрабатывает одну попытку, потом наступает очередь следующей; последняя повторяется до самого отказа. Список 10m,10m,10m,1h,1h,4h означает: три попытки с интервалом в десять минут, две — через час, дальше каждые четыре часа, пока не выйдет срок. Так одна строка обслуживает и приёмника, который просто занят, и приёмника, который отступает намеренно.
Лесенка сбрасывается дважды. После успешной доставки отсчёт начинается с первой ступени — приёмник ответил, значит прежняя осторожность больше не нужна. И при перезапуске узла: счётчик попыток живёт в памяти, поэтому после рестарта все очереди опять стучатся по первой, самой короткой паузе.
Полчаса — разумная отправная точка. Столько обычно держит серая задержка: приёмник намеренно отказывает первому обращению и ждёт, вернётся ли отправитель. Вернуться через десять минут — значит попасть в ту же задержку ещё раз.
Лесенка нужна не всем. Она окупается там, где приёмник отступает осмысленно: крупные почтовики, репутационные отказы. Для приёмника, который просто перегружен, ровный получасовой шаг работает не хуже и читается проще.
Сумма ступеней не должна перекрывать срок. Иначе хвост лесенки не отработает ни разу: письмо уйдёт в отказ раньше, чем дело дойдёт до дальних ступеней.
# ровный шаг — приёмник просто занят <domain example.net> retry-after 30m</domain> # лесенка — приёмник отступает намеренно <domain gmail.com> retry-after 10m,10m,10m,1h,1h,4h bounce-after 3d </domain>
что делают не так и чем это кончается3 ошибки▶
§ 3.3.10.46
§ 11.14
наш опыт
1 связь
proxy-retry-after<domain>Обычный шаг повторов, который эта строка заменяет при сбое прокси, и который становится её умолчанием. § 3.3.10.47backoff-retry-after<domain>Обычное расписание повторов, которое эта директива заменяет в щадящем режиме — и которое становится её умолчанием. § 3.3.10.48retry-recipients-after<domain>Расписание очереди целиком. Действующая пауза для адреса — большая из двух, а не эта. § 3.3.10.49retry-after-dns-error<domain>Обычный шаг повторов, который эта строка заменяет, когда очередь встала на разрешении имён. Умолчание у неё собственное — минута, а не значение соседа. § 3.3.10.50retry-upon-new-mail<domain>Расписание, которое эта строка обходит: при включении новое письмо назначает попытку, не дожидаясь паузы. § 3.3.10.96Своя лестница повторовДиректива, которой этот механизм и включается. § 11.14
pmta show settings gmail.com/vmta1 | grep -iE 'retry-after|bounce-after' pmta show queues --mode=retry --maxitems=20
3 статьи
◇Как складывается политика для приёмникаНастройки собираются от самого общего образца к самому точному; порядок блоков в файле не значит ничего.◇Щадящий режим — вторая личность очередиОчередь, которой приёмник начал отказывать, переключается на параллельный набор лимитов, повторов и маршрутов — десять директив, действующих только в этом режиме.◇Наблюдение за репутацией внутри узлаMTA сам следит за ответами приёмников и по совпадению с образцом меняет режим очереди — реакция внутри соединения, а не по телеметрии.