Одна фраза руководства, сказанная мимоходом при описании экрана монитора, держит на себе половину модели доставки: письма группируются по домену получателя для каждого адреса отправки отдельно. Один и тот же gmail.com, отправляемый с двух адресов, — это две очереди, а не одна.
Что из этого следует. Лимиты блока приёмника считают пару, а не домен: max-msg-rate 500/h при двух адресах отправки — это тысяча писем в час на gmail.com. backoff-mode включается тоже у пары: с одного адреса очередь может быть в щадящем режиме, с другого — в обычном. Число одновременных соединений, которое видит приёмник от одного адреса, никак не связано с тем, сколько их открыл другой.
Больше адресов — больше очередей, а не меньше работы в каждой. Тот же поток писем, разложенный по трём адресам вместо одного, даёт три очереди, каждая со своим полным лимитом. Работа не делится — она умножается.
Сводки считают по-разному, и это не ошибка. Экран доменов складывает все адреса вместе, экран очередей — нет. Одно и то же число там будет разным, потому что это разные агрегаты.
⚠️ Но аналитика местами складывает адреса. Разрезы по провайдерам суммируют все адреса вместе — там, где MTA этого не делает. Число на экране «доставляемость по провайдеру» отвечает на вопрос «как у нас с этим приёмником в целом», а не «что происходит в конкретной очереди», и путать их нельзя.
И ничто не проверяет, что лимит попал в ту очередь, что задумана. Пресеты Хаб пишет в блок приёмника внутри блока адреса отправки — значит по паре, правильно. Но написанное руками в общий блок достанется всем адресам сразу, и предупреждения об этом нет.
Своих значений у понятия нет — важно, где писать настройку:
| Где написана строка | Кому достанется |
|---|---|
| блок приёмника внутри блока адреса | одной очереди — той самой паре |
| блок приёмника на уровне узла | каждой очереди этого домена, по одной на адрес |
| блок приёмника внутри пула | каждой очереди каждого участника пула |
Правило: если число задумано «на приёмника с этого адреса» — писать внутрь блока адреса. Так делает Хаб, и так же стоит делать руками. Общий блок годится для того, что верно при любом адресе: расписание повторов, требование шифрования, срок отказа.
Считать поток на домен приходится самим. Умножить лимит очереди на число адресов, с которых этот домен отправляется, — другого способа узнать разрешённый суммарный темп нет.
# одна и та же строка в двух местах означает разное <domain gmail.com> bounce-after 4d # верно при любом адресе — общий блок </domain> <virtual-mta mta-news-1> <domain gmail.com> max-msg-rate 500/h # только для очереди gmail.com/mta-news-1 </domain> </virtual-mta>
что делают не так и чем это кончается3 ошибки▶
§ 5.4
§ 5.4
§ 5.4
4 связи
Щадящий режим — вторая личность очередиРежим — свойство той же пары, а не домена. § 5.4
ОчередиЭкран, на котором пара видна прямо: по строке на очередь, с режимом и счётчиками. § 5.4
Три коротких истории по каждой очередиВсе три истории ведутся по паре приёмника и адреса отправки, а не по домену. § 5.4Адреса отправкиМеханизм, который здесь и виден. § 5.9Письма в очередиМеханизм, который здесь и виден. § 5.13Очереди с наибольшим числом получателейМеханизм, который здесь и виден. § 5.9Приёмник отказал в соединенииСравнение одного приёмника у разных адресов и отличает блокировку адреса от неполадки у приёмника. inferenceКак назвать очередь в командеСмежный механизм: они работают вместе. § 6.3.14
pmta show queues pmta show domains
3 статьи
◇Четыре способа сказать «медленнее»Письма, объём данных, темп подключений и число соединений — у каждого свой лимит, и у каждого есть вариант «на адрес источника» и двойник для щадящего режима.◇Получатели, отложенные после временного отказаПолучатель, которому приёмник ответил 4xx, переезжает в отдельную область ожидания с интервалом по приёмнику; две команды умеют выпустить его раньше срока.◇Три правила пула, названные руководством прямоРаздача по кругу, наследование настроек участниками с перекрытием у самого участника и общее с адресами отправки пространство имён.