Я имею некоторые основные вопросы относительно соединений SMTP, особенно для Постфикса, но ценил бы совет для Exchange MS также:
Отказ от ответственности: в этом ответе используется только некоторая постфиксная документация в интернете, так что, возможно, я пропустил некоторые факты здесь. Для лучшей и точной документации, не стесняйтесь размещать вопрос в постфиксном почтовом списке (Wietse Venema является активным человеком в этом списке) или посмотрите в постфиксном исходном коде.
Весь вышеприведенный вопрос сфокусирован на постфиксном алгоритме обратного отсчета . Сначала я попробую решить проблему мёртвого десионирования
Здесь соответствующая часть man 8 qmgr
STRATEGIES
The queue manager implements a variety of strategies for either opening
queue files (input) or for message delivery (output).
...
destination status cache
The queue manager avoids unnecessary delivery attempts by main-
taining a short-term, in-memory list of unreachable destina-
tions.
Основываясь на вышесказанном, постфикс действительно имеет кэш для мёртвого хоста назначения. Чтобы контролировать это поведение, пожалуйста, настройте параметр qmgr_message_recipient_limit
.
qmgr_message_recipient_limit (по умолчанию: 20000)
Максимальное количество получателей, удерживаемых в памяти Postfix менеджером очередей, и максимальный размер краткосрочного кэша состояния "мертвого" хоста назначения в памяти.
Значит, когда postfix проверяет, жив ли хост? Postfix пытается подключиться к хосту только в том случае, если в активной очереди есть сообщение, содержащее назначение. Кроме того, postfix не будет активно проверять, ожил ли хост.
Postfix проверяет только MX-хост с более низким приоритетом, если основной хост недоступен или postfix получает код ошибки 4xx с удаленного хоста. Другие MTA ведут себя по-другому, когда получают 4xx-код ошибки, так как они могут никогда не пытаться подключиться к вторичному MX-хосту, пока MTA может подключиться к первичному хосту. Смотрите: постфиксное назначение полное/занято/ошибка попробуйте другое назначение и Обмен не посылает сообщения на второй MX
Что касается времени повторной попытки сообщения, постфикс помещает сообщение в отложенную очередь, если не удается доставить его до bounce_queue_lifetime
(для отказов, сгенерированных постфиксом) или maxal_queue_lifetime
(для остальных). Как было сказано выше, постфикс снова переделывает только в том случае, если qmgr поставил его в активную очередь. Здесь приведена соответствующая выдержка из документации postfix об алгоритме постфиксного планирования.
Каждое сканирование отложенной очереди приносит только часть отложенной очереди обратно в активную очередь для повторной попытки. Это происходит потому, что каждому сообщению в отложенной очереди присваивается время "остывания" при отложении. Это делается путем деформации времени модификации файла очереди в будущем. Файл очереди не имеет права на повторную попытку, если время его модификации еще не достигнуто.
Время "охлаждения" составляет как минимум
$minimal_backoff_time
и как максимум$maximal_backoff_time
. Время следующей повторной попытки устанавливается путем удвоения возраста сообщения в очереди и настройки вверх или вниз, чтобы оно лежало в пределах. Это означает, что молодые сообщения изначально перепроверяются чаще, чем старые.
Поэтому, если вы хотите настроить время повторной попытки, не стесняйтесь проигрывать с параметром minimum_backoff_time, maxal_backoff_time и queue_run_delay.
.