#Что произошло и как распознать неисправность
Два почтовых адреса с включёнными автоответами начинают пересылать друг другу сообщения: каждое автоматическое письмо запускает новое, очередь и число уведомлений быстро растут. Такая петля может привести к блокировке отправителя, переполнению ящиков и неожиданной нагрузке. Стандарт RFC 3834 рекомендует подавлять ответы на автоматические сообщения и маркировать их Auto-Submitted: auto-replied. Нужно остановить только подтверждённый цикл, сохранив обычную входящую почту. Простая смена темы письма или добавление «Не отвечайте» в текст не предотвращает SMTP-автоответы. Проверять нужно одновременно оба правила, пересылки и признаки автоматических сообщений.
#Причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Автоответчик отвечает на автоответчикОдин или оба обработчика не распознают заголовок Auto-Submitted или другие признаки автоматического письма. | В заголовках переписки чередуются автоответы от двух адресов. | Настроить фильтр автоматических писем и ограничение частоты ответов. |
| Пересылка соединяет адреса в кругОдин ящик перенаправляет письма второму, а второй — обратно первому. | В заголовках видна пересылка, причём автоответ может быть только на одном адресе. | Убрать подтверждённую циклическую пересылку, не удаляя ящики. |
| Не установлен предел ответов одному отправителюСистема отвечает на каждое входящее письмо, включая технические уведомления. | Десятки сообщений в минуту одной паре адресов. | Ввести ответ не чаще одного раза за разумный период по настройкам MTA/Sieve. |
Неверный адрес для автоматического ответаАвтоответ отправляется на From или Reply-To без учёта автоматических сообщений и пустого envelope sender. | Возникают ответные письма на списки рассылки и технические отправления. | Использовать поддерживаемый стандартный обработчик vacation, а не произвольный скрипт. |
#Пошаговая диагностика и исправление
- Ограничьте источник цикла без удаления сообщенийОткройте почтовую панель для обоих ящиков и найдите раздел «Автоответчик», «Ответ во время отсутствия» или правила Sieve. Запишите, какие правила включены и когда они менялись. Временно выключите только один подтверждённо проблемный автоответчик, сохранив его текст и расписание. Не удаляйте сам ящик, не очищайте всю очередь и не выключайте приём входящей почты.
- Зафиксируйте признаки петли в заголовкахОткройте два-три последовательных сообщения в веб-почте и выберите просмотр исходного письма. Сравните
Message-ID,In-Reply-To,Return-PathиAuto-Submitted; отметьте точное время и адреса. ЗаголовокAuto-Submitted: auto-repliedуказывает на автоматический ответ, но его отсутствие у самодельного обработчика не доказывает, что письмо написано вручную. - Проверьте существующие пересылки и правилаВ панелях обоих адресов откройте правила переадресации и фильтры входящих сообщений. Убедитесь, что адрес A не пересылает письма B, а B — обратно A, напрямую или через группы. Исправляйте только найденную циклическую связку; прежде чем убрать правило, запишите прежнего получателя и согласуйте изменение с владельцем ящика.
- Проверьте, откуда запускается автоответУзнайте, создаёт ли ответ почтовая панель, Sieve vacation, Outlook в запущенном клиенте или собственный PHP-скрипт сайта. Одновременные автоответы на сервере и в клиенте могут дублировать реакцию. Откройте настройки именно активного источника, иначе изменение в другой программе не прервёт петлю.
- Настройте запрет ответов на автоматические сообщенияЕсли используется Sieve vacation/Dovecot, примените поддерживаемый штатный механизм автоответа вместо пользовательского кода, который отправляет ответ на каждое письмо. Он должен учитывать
Auto-Submitted(любое значение кромеno), письма списков рассылки, пустого envelope sender и сообщения о недоставке. Не удаляйте из писем заголовки защиты от циклов ради совместимости со старым скриптом. - Добавьте ограничение числа ответовВ настройках vacation задайте ответ одному отправителю не чаще одного раза за установленный период (если поддерживается); это предотвращает большое число ответов при повторной переписке. RFC 3834 рекомендует разумное ограничение повторов. Для собственных программ нужен ограничитель по паре отправитель–получатель с надёжным хранением состояния. Не сохраняйте пароль к почте в коде сайта в открытом виде.
- Проверьте очередь и успокойте доставкуЕсли уже создана большая очередь, администратор Exim может посмотреть
sudo exim -bpи историю конкретных идентификаторов, чтобы отличить автоответы от настоящих писем. Не выполняйте массовое удаление без резервной копии и проверки адресатов: в очереди могут быть важные сообщения. При серьёзной лавине временно ограничьте конкретное правило отправки в контролируемом порядке.Linux · Терминал (Bash)КомандаНужен sudoПросмотр очереди Exim на Linux, если этот почтовый сервер установлен. Нужны права администратора. Только чтение, без принудительной доставки и удаления.sudo exim -bp - Проведите безопасный контрольный тестПосле исправления включите автоответчик для одного тестового адреса и вручную отправьте одно письмо с собственного адреса. Убедитесь, что пришёл один автоответ, а в течение следующего периода новых ответов без нового человеческого письма нет. Затем, при необходимости, поочерёдно включайте остальные правила, проверяя очередь. Если цикл возобновился, выключите последнее включённое правило и передайте администратору обезличенные заголовки.
#Как проверить результат и что делать при неуспехе
Успех — автоматическое письмо отправляется не более одного раза в заданный период, ответы на технические сообщения не генерируются, а очередь возвращается к обычному размеру. При повторении проверьте скрытую пересылку, сторонний клиент и самодельные обработчики; восстанавливать прежнее правило можно лишь после устранения петли.