Мне это действительно любопытно. Вопрос (выделен жирным шрифтом):
Может ли кто-нибудь назвать ОДНУ ХОРОШУЮ ПРИЧИНУ, чтобы их почтовый сервер был постоянно настроен на автоматический / немедленный отказ по кодам 4xx?
Потому что, честно говоря, это звучит так, как будто «их» установки сломаны из коробки. SMTP - это не обмен мгновенными сообщениями. Перестаньте относиться к нему как к IRC, Jabber, MSN или вставить-IM-технологии-здесь. Я не знаю, что заставляет людей придерживаться менталитета «НЕМЕДЛЕННАЯ ДОСТАВКА ИЛИ ОТКАЗ» при настройке SMTP, но им нужно прекратить это делать. Это просто ломает вещи. Каждые два или три года я натыкаюсь на это. Кто-то где-то решил в своей бесконечной мудрости, что коды 4xx - это немедленные отказы, и внезапно его OMGWTFBBQ ИНТАРНЕЦ БОРКЕН, HALP SKY ПАДАЕТ вместо «о, он повторит попытку доставки примерно через 30 минут». Меня поражает, как внезапно "моей" проблемой становится то, что сообщение не проходит, потому что кто-то еще неправильно настроили "свою" службу SMTP.
ЕСЛИ есть законная причина для постоянной настройки вашего сервера таким образом, тогда первый хороший ответ получит чек.
Если есть нет веская причина (а я подозреваю, что ее нет), то первый хороший, хотя и логически ошибочный ответ получит чек.
Я однажды настроил его таким образом, потому что владелец хотел знать, когда электронные письма будут задерживаться, и если да, он хотел изменить текст письма. Это было сделано для трейдинга, поэтому я могу понять необходимость своевременности. Помимо чего-то подобного, я не могу представить, почему (и я подумал, что это была установка однажды в голубой луне)
Из RFC:
4.X.X Persistent Transient Failure
A persistent transient failure is one in which the message as
sent is valid, but some temporary event prevents the successful
sending of the message. Sending in the future may be successful.
Совершенно очевидно, что 4xx следует отправлять только в ответ на временную (временную, если говорить о плохой формулировке) проблему. Отсюда следует, что нет никаких уважительных причин рассматривать его как немедленный ошибка. Следует ответить, что это обычные попытки.
С учетом сказанного, чрезмерное использование жирного шрифта и курсива предполагает, что вы относитесь к этому вопросу не только серьезно, но и лично. Лучшее, что я могу посоветовать, - это просто расслабиться и не расстраиваться и не нервничать из-за чужого идиотизма.
Когда кто-то жалуется, просто укажите на эту часть RFC (исключая тот факт, что RFC не стандарт) и напомните им, что вы не можете контролировать, как другие настраивают свои системы.
Думая об этом, я могу подумать, что может быть какая-то DoS-атака, если она запущена изнутри, когда клиент отправляет дерьмовую нагрузку электронных писем на известные недействительные серверы smtp. Это приведет к тому, что почтовый сервер начнет больше загружать себя, поскольку он продолжает попытки повторной отправки.
Я бы не назвал это хорошим поводом, но, может быть, это хотя бы «хорошее звучание»? :-)
Возможно, другая причина может заключаться в следующем: «Если это не сработало в первый раз, скорее всего, не будет, поэтому давайте сразу же сообщим пользователю. И я не знаю, как сделать так, чтобы он предупреждал, что он будет продолжать повторять попытку». . Мне это кажется еще более убогим ...