Когда почтовый сервер выдает сообщение об отказе в подключении, электронные письма будут приходить в будущих попытках, если почтовый сервер снова подключится к сети. Насколько хорошо это поддерживается? Все ли почтовые серверы это поддерживают? Только самые надежные? Это стандарт де-факто или спецификация?
SMTP-серверы обычно пытаются доставить сообщение в течение нескольких дней. Это указано в RFC 5321 Простой протокол передачи почты, Раздел 6.1 Надежная доставка и ответы по электронной почте и Раздел 4.5.4 Стратегии повторных попыток.
РЕДАКТИРОВАТЬ
Добавлены выдержки из RFC:
Когда SMTP-получатель принимает сообщение (отправляя сообщение «250 OK» в ответ на DATA), он принимает на себя ответственность за доставку или ретрансляцию сообщения. Он должен серьезно отнестись к этой ответственности. Он НЕ ДОЛЖЕН потерять сообщение по легкомысленным причинам, например, из-за сбоя хоста позже или из-за предсказуемой нехватки ресурсов.
...
почта, которая не может быть передана немедленно, ДОЛЖНА быть поставлена в очередь и периодически повторяться отправителем.
...
Повторные попытки продолжаются до тех пор, пока сообщение не будет отправлено или отправитель не откажется от него; время отказа обычно должно составлять не менее 4-5 дней.
Как уже упоминалось, это описано в RFC 5321, но, к сожалению, реализация на серверах SMTP отличается. Есть как минимум такие сценарии:
Некоторые серверы даже различают коды повтора 4xy, потерю соединения, тайм-ауты, недоступность сети и другие временные ошибки и ведут себя по-разному в каждом из условий.
Подводя итог: даже если существует стандарт, вы должны признать, что он не может зависеть от реализации.