У меня есть несколько основных вопросов относительно SMTP-подключений, особенно для Postfix, но я хотел бы получить совет и для MS Exchange:
Отказ от ответственности: этот ответ использует только некоторую документацию по постфиксам в Интернете, поэтому, возможно, я пропустил здесь некоторые факты. Для получения более качественной и точной документации, не стесняйтесь отправлять вопрос в список рассылки postfix (Wietse Venema является активным лицом в этом списке) или посмотрите исходный код postfix.
Все вышеперечисленные вопросы сосредоточены на постфиксный алгоритм отсрочки. Во-первых, я попытаюсь решить проблему мертвого назначения
Здесь соответствующая часть 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.
Исходя из вышесказанного, у postfix действительно есть кеш для мертвого целевого хоста. Чтобы контролировать это поведение, настройте qmgr_message_recipient_limit
параметр.
qmgr_message_recipient_limit (по умолчанию: 20000)
Максимальное количество получателей, удерживаемых в памяти администратором очередей Postfix, и максимальный размер краткосрочного, «мертвого» кэша состояния назначения в памяти.
Итак, когда postfix проверяет, жив ли хост? Postfix пытается подключиться к хосту только в том случае, если есть сообщение в активная очередь у которого есть пункт назначения. Помимо этого, postfix не будет активно проверять, вернулся ли хост живым.
Postfix проверяет только хост MX с более низким приоритетом, если основной хост недоступен или postfix получает код ошибки 4xx от удаленного хоста. Другие MTA ведут себя иначе, когда получают код ошибки 4xx, так как они могут никогда не попытаться подключиться к вторичному хосту MX, пока MTA может подключиться к основному хосту. Видеть: назначение postfix заполнено / занято / ошибка попробуйте другое место назначения и Exchange не отправляет электронную почту на второй MX
Что касается времени повтора сообщения, postfix поместит сообщение в отложенную очередь, если не сможет доставить его до bounce_queue_lifetime
(для отказов, генерируемых постфиксом) или maximal_queue_lifetime
(для остальных). Как сказано выше, postfix будет повторно загружен, только если qmgr поместит его в активную очередь. Здесь соответствующий отрывок из постфиксные документы об алгоритме постфиксного расписания.
Каждое отложенное сканирование очереди приносит только часть отложенная очередь обратно в активная очередь для повторной попытки. Это связано с тем, что каждому сообщению в отложенной очереди назначается время «охлаждения», когда оно откладывается. Это достигается за счет преобразования времени изменения файла очереди в будущее. Файл очереди не имеет права на повторную попытку, если время его модификации еще не истекло.
Время «остывания» не менее
$minimal_backoff_time
и самое большее$maximal_backoff_time
. Время следующего повтора устанавливается путем удвоения возраста сообщения в очереди и увеличения или уменьшения, чтобы находиться в установленных пределах. Это означает, что молодые сообщения изначально повторяются чаще, чем старые.
Итак, если вы хотите настроить время повтора, не стесняйтесь играть с параметром Minimal_backoff_time, maximal_backoff_time и queue_run_delay.