
У меня резервный почтовый сервер «съедает» кучу сообщений, и я хочу просто настроить простой сервер для отправки 450
всех сообщений.
Однако я не уверен, что это хорошая идея, поскольку если отправляющие серверы при повторной попытке не попытаются отправить сообщение на сервер с более высоким приоритетом, сообщения никогда не будут доставлены.
Мне не удалось найти ничего в RFC по этому поводу, но повторяют ли серверы попытки на сервере с более высоким приоритетом или постоянно пытаются на том же сервере, который ответил 450
?
решение1
Когда доставка SMTP не удалась(без получения постоянного5xy
отрицательный ответ SMTP завершения) и не определен альтернативный/резервный MX, IIRCRFC оставляют это на усмотрение отправителя.если доставка будет предпринята снова и как часто и как долго будут предприниматься последующие попытки доставки. Стандарты также оставляют это на усмотрение отправителя, реализующего если икак скоро уведомления о временной задержке доставкибыть возвращены первоначальному отправителю и/иликак быстро уведомление об ошибке постоянной доставкивозвращается.
Когда больше одногоMX-записьопределен для домена получателя, то для каждой попытки доставки отправитель, соответствующий стандартам, должен попытаться доставить сообщение всем записям MX, одной за другой и с учетом их приоритета, пока одна из записей MX не примет сообщение (отправитель получит2xx
положительный ответ SMTP о завершении), или один MX отклоняет сообщение (спостоянный 5xy
отрицательный ответ SMTP-завершения) или пока не будут установлены все контакты.
Когда ни одна из (основных и/или резервных) записей MX не приняла или не отклонила почтовое сообщение для вашего домена, то я бы ожидал, что будет использован тот же путь отказа, зависящий от реализации отправителя, как и в случае отсутствия альтернативных записей MX. Другими словами:«отправитель может поставить сообщение в очередь для последующей попытки доставки или отказаться».
Делать или не делать
Вся концепция нескольких записей MX и резервного почтового сервера под вашим собственным контролем заключается в том, что вы контролируете его и вам не нужно полагаться на политику очередей и повторных попыток исходного отправителя или на ее отсутствие.
Когда вам не нужен этот контроль;Если вы не хотите, чтобы резервная запись MX ставила почту в очередь, но хотите предоставить отправителю возможность постановки в очередь и повторной доставки, просто не настраивайте резервную запись MX вообще.Это должно иметь тот же эффект (если не лучший), что и настройка резервного MX, указывающего на сервер, который только генерирует ошибки и который на самом деле не будет принимать и ставить в очередь вашу электронную почту.
ИМХО предполагаемая цель резервного копирования MX
Это когда ваш основной сервер отключается и/или становится недоступным из-за сбоя или планового обслуживания, RFC и правильная реализация протокола SMTP отправителем должны гарантировать, что сообщения электронной почты, адресованные вашему домену, будут отправлены на ваш резервный MX, где почта будет принята и поставлена в очередь на время, необходимое для окончания (планового) сбоя.
Ваш резервный почтовый сервер (а не отправитель) будет контролировать, будут ли/когда уведомления о задержке/сбое доставки почты отправлены исходному отправителю или нет.
После того, как сбой закончится и ваш основной почтовый сервер и почтовые ящики снова будут в сети, вы можете очистить очередь на резервном MX и (почти) немедленно получить всю почту в очереди. С помощьюЕТРННапример, команда SMTP.
решение2
Как предложено в комментарии jcaron:
Есть ли смысл иметь второй MX, отправляющий 450? Если бы вообще ничего не было (т. е. сервер не отвечал на этом порту или второй MX вообще не был указан) результат был бы таким же, и работы было бы меньше... Но имейте в виду, что каким бы ни было решение, отправители не хранят почту вечно. Хотя многие будут повторять попытки в течение нескольких дней, у некоторых будет гораздо более короткий тайм-аут (а некоторые внесут ваш адрес в черный список при первой же ошибке!)
Правильное решение вашей проблемы XY — не иметь резервного MX. Никогда не нужно иметь больше одного MX. Каждый законный отправитель повторяет доставку в течение более суток, часто более недели. В случае, если ваш сервер простаивает и не может немедленно принять почту, очевидно, правильным решением будет оставить это на усмотрение почтовой системы отправителя, а не какой-то сомнительной сторонней службы очередей. Это не только предотвращает «съедение» вашей почты; это также позволяет избежать доверия третьей стороне, имеющей полномочия перехватывать вашу почту, и гарантирует, что отправитель будет уведомлен (своей собственной почтовой системой) в случае, если чрезвычайно длительный сбой сделает его почту недоставленной.
Что касается вашего вопроса, то то, как работает повторная попытка для SMTP, недостаточно определено, и я не уверен, что вообще есть какие-либогарантиячто соответствующий отправитель вернется к попытке вашего основного после того, как обнаружит, что он недоступен, вместо того, чтобы продолжать попытки доставить на поддельный вторичный MX, сообщая о временных сбоях. Так что даже без приведенных выше рассуждений, почему выне следуету меня есть вторичный MX, я думаю, что это плохая идея пробовать этот конкретный хак.
Если это важно, мой опыт работы в этой области составляет более 22 лет непрерывной эксплуатации личной/небольшой почтовой системы, и я никогда не использовал более одного MX.