Назад | Перейти на главную страницу

Как настроить запись MX, чтобы доставка приводила к временному сбою

Я перемещаю SMTP-сервер с одного хоста на другой. Чтобы упростить мне задачу (и поскольку мне все равно, если электронная почта задерживается на несколько часов), я хотел бы принять эту стратегию:

  1. Я устанавливаю запись MX для этого домена на некоторое значение, которое гарантирует, что каждая попытка доставки приводит к временному сбою, и жду, пока истечет TTL. Таким образом, отправители, пытающиеся доставить, просто начнут хранить свои сообщения, пока я не закончу.

  2. Я копирую почтовые ящики и соответствующие вещи со старого на новый хост. Я проверяю, что новый хост работает правильно. Ожидается, что отправители будут хранить отложенные сообщения в течение нескольких дней, так что у меня много времени.

  3. Я обновляю запись MX, чтобы она указывала на новый хост. Как только отправители захотят повторить попытку, они добьются успеха с новым хостом.

Сложный момент - №1: как настроить запись MX, чтобы фактическая доставка не производилась, а сообщение задерживалось? Установка MX не работает, потому что тогда выполняется попытка разрешения A или AAAA, и я хочу сохранить A и AAAA на старом хосте, чтобы не нарушать работу других служб. Поможет ли мне установка несуществующего домена? Я не мог понять, будет ли такая ошибка интерпретироваться как временная или постоянная.

Я не уверен, что это хорошая стратегия, и я не стал бы пытаться использовать ее на уровне DNS, если смогу ее избежать. Однако для его реализации просто найдите контролируемый вами IP-адрес, убедитесь, что он не прослушивает порт 25, и укажите запись MX на запись A для этого адреса. Если у вас есть время, установите более низкий приоритет (большее число) и низкий TTL для этой записи. Установите также низкий TTL для основного MX.

Вы можете использовать свой старый MX-сервер и просто остановить на нем службу SMTP - это, вероятно, самый простой способ достижения вашей цели, но не решение на уровне DNS.

Для создания удаленной очереди электронной почты вы ищете сервер, который не отвечает на порт 25, или сервер, который возвращает ошибку (например, 421).

Я мог бы попытаться сделать это по-другому, либо настроив сервер для приема электронной почты и поставив ее в очередь, чтобы я мог сбросить ее на основной сервер, когда он снова заработает, либо (если используется формат maildir), используя немедленное поступление новых сообщений на сервер и синхронизировать старые файлы. В идеале вы захотите отключить POP / IMAP в это время.

Ваш метод - верный способ потерять электронную почту. Что вы хотите сделать, так это остановить / заблокировать / отключить входящий SMTP на текущем хосте. Отправляющие серверы помещают электронное письмо в очередь и предпринимают попытку доставки позже (обычно до 48 часов).

Когда новый хост будет готов, измените запись MX соответствующим образом. После того, как электронная почта перейдет на новый хост, вы можете скопировать содержимое почтового ящика со старого хоста на новый хост.

  1. Я копирую почтовые ящики и соответствующие вещи со старого на новый хост. Я проверяю, что новый хост работает правильно. Ожидается, что отправители будут хранить отложенные сообщения в течение нескольких дней, так что у меня много времени.

Если я правильно понимаю ваши намерения, вы хотите выделить время, чтобы скопировать материал и протестировать. Я бы стремился к почти нулевому простою.

Вы можете протестировать новый хост, фактически не меняя DNS. Просто скопируйте новую конфигурацию на новый хост, затем заполните почтовые ящики (у них не обязательно должны быть все письма, достаточно для тестирования).

Затем с тестовой машины вы можете просто добавить запись в свой hosts файл, который указывает на новый IP-адрес, чтобы обойти обычное разрешение DNS. Затем начните тестирование отправки и получения. Когда ваша конфигурация будет полностью готова, измените DNS, чтобы переключиться на новый хост, и вы можете немедленно списать старый хост, чтобы он больше не получал почты.

Один простой трюк - заблокировать порты 25/465 и т. Д. На уровне брандмауэра, например, используя iptables.

Подводя итог, я бы провел все испытания перед остановка почтового сервиса и изменение настроек DNS. Всегда есть шанс, что что-то пойдет не так, и вы (и ваш клиент) будете испытывать стресс и гоняться со временем.

Вы не упомянули одну вещь: как вы будете копировать почту с одного хоста на другой и о каком объеме мы говорим. Например, если вы будете использовать Imapsync, я думаю, что можно будет выполнить добавочная синхронизация, так что к тому времени, когда вы сделаете переключение, новый хост уже будет иметь почти 100% писем.