Замедлить отправку можно четырьмя разными способами, и они считают разное. Понимать, что именно считает выбранный лимит, важнее, чем подобрать число.
Что считает каждый. max-msg-rate — попытки к получателям, причём доставки и отказы наравне. max-data-volume-rate — байты, и только успешно доставленные. Из этой пары получается неочевидное следствие: приёмник, который отказывает, продолжает тратить лимит писем и перестаёт тратить лимит объёма.
Рядом — два способа управлять соединениями. max-smtp-out ограничивает, сколько их открыто одновременно, max-connect-rate — как быстро их открывают. Плюс smtp-out-rampup-interval, который разносит открытие новых соединений во времени, и connection-idle-timeout, который держит простаивающее соединение открытым вместо переподключения.
Грамматика значения общая для всего руководства: N/[M] с единицей d, h, m или s. Множитель в знаменателе позволяет окна, не кратные единице: 10/2h — не то же, что 5/h, потому что по-разному ведёт себя на всплесках. У объёмных лимитов добавляются суффиксы размера: 6g/10h.
И у каждого лимита три формы. Обычная; с приставкой source-ip- — считает на каждый адрес источника отдельно; и с приставкой backoff- — действует вместо обычной, пока очередь в щадящем режиме (backoff-mode). Формы на адрес источника и делают возможным разный темп для нескольких адресов внутри одного блока адреса отправки.
Потолок на адрес целиком Хаб не задаёт. Суточную норму держит его планировщик — он умеет остановиться по доле спама и подменить адрес из резервного пула, чего движковый лимит не умеет.
Формы на адрес источника Хаб не пишет: у него один адрес источника на блок адреса отправки, и разделять внутри блока нечего.
Выбор начинается не с числа, а с того, что ограничивать:
| Что мешает | Каким лимитом | Почему не другим |
|---|---|---|
| приёмник жалуется на темп | max-msg-rate в блоке приёмника | считает попытки — то, что видит приёмник |
| узкий канал, счёт за трафик | max-data-volume-rate | считает байты, а не письма |
| приёмник рвёт соединения | max-smtp-out | одновременность, а не темп |
| приёмник ругается на частоту подключений | max-connect-rate | темп открытия, а не число |
| нужен потолок на адрес целиком | max-smtp-msg-rate в блоке адреса | лимиты приёмника умножаются на число приёмников |
Сначала измерить, потом ограничивать. Руководство советует это прямо: снять базовый уровень без лимита и убедиться, что лимит улучшает доставляемость, а не просто замедляет отправку.
Множитель в знаменателе — не украшение. 10/2h и 5/h разрешают одно и то же в сутки, но первое допускает десять писем подряд в начале двухчасового окна, а второе растянет их ровнее. Для приёмника, чувствительного к всплескам, разница заметна.
# три формы одного лимита в одном блоке — они про разное <virtual-mta mta-news-1> max-smtp-msg-rate 3000/h <domain *> max-msg-rate 500/h source-ip-max-msg-rate 200/h backoff-max-msg-rate 1/h </domain> </virtual-mta>
что делают не так и чем это кончается3 ошибки▶
§ 3.3.10.40
§ 3.3.10.44
§ 3.3.10.40
3 связи
enable-source-ip-limits-on-sending-ip<domain>Решает, к какому адресу относятся формы «на адрес источника» — к локальному или к тому, который видит приёмник. § 3.3.10.86total-max-smtp-outGlobalПотолок соединений на весь узел: он же и есть верхняя граница, в которую упрутся все лимиты соединений вместе. § 3.3.1.2
Прогрев, встроенный в MTAДва способа поберечь новый адрес: слать ему меньше или пускать через него только часть трафика. inferencemax-errors-per-connection<domain>Тот же круг настроек, ограничивающих поведение на соединении. inferencemax-msg-rate<domain>Один из четырёх лимитов темпа — тот, что считает попытки к получателям. § 3.3.10.40backoff-max-msg-rate<domain>Тот же механизм темпа, только для щадящего режима. § 3.3.10.41max-data-volume-rate<domain>Один из четырёх лимитов темпа — тот, что считает байты, и только успешно доставленные. § 3.3.10.44backoff-max-data-volume-rate<domain>Тот же механизм ограничения, только по объёму и для щадящего режима. § 3.3.10.45
pmta show settings gmail.com/mta-news-1 pmta show vmta-settings mta-news-1
3 статьи
◇Очередь — это приёмник вместе с адресом отправкиMTA группирует письма по паре «домен получателя плюс адрес отправки»: один домен с двух адресов — это две независимые очереди со своими счётчиками, соединениями и режимом.◇Три правила пула, названные руководством прямоРаздача по кругу, наследование настроек участниками с перекрытием у самого участника и общее с адресами отправки пространство имён.◇Четыре типа значений, на которых написан весь конфигЛогическое, образец домена, регулярное выражение и промежуток времени — определены один раз в § 3.2 и дальше используются всеми директивами.