Практика интервалов повторной попытки очереди почты

8

Я настраиваю заказную почтовую очередь. Дело в том, что могут быть ошибки при отправке почты. Обычно никто не узнает причину, по которой почта не достигла места назначения. Поэтому самое простое решение - попытаться отправить письмо еще раз. Вот некоторые алгоритмы, которые я знаю из уст в уста:

  • Дублируйте время в очереди для следующей повторной попытки, начинающейся через некоторое время: 1 мин, 2 мин, 4 мин и т. Д.
  • Укажите серию интервалов (которые являются общим случаем предыдущего варианта): 5 минут, 5 минут, 10 минут, 30 минут и т. Д.

В какой-то момент попытаться отправить письмо снова будет бессмысленно. В любом случае, в систему входит журнал для не отправленной почты.

Что вы знаете о передовой практике в этом вопросе? Что такое «хороший» интервал удержания? По крайней мере, какие факты я должен принять во внимание, чтобы выбрать интервалы?

Андрас Гомрей
источник

Ответы:

6

Вы должны следовать RFC 5321, в котором четко указано, как реализовать стратегии повторных попыток: http://tools.ietf.org/html/rfc5321#section-4.5.4

Вы должны полностью прочитать (и понять!) Этот RFC, когда пытаетесь реализовать свой собственный почтовый сервер. Но я должен четко подчеркнуть, что практически нет необходимости реализовывать собственный почтовый сервер (клиент). Существует множество уже существующих (проверенных!) Решений, которые приносят пользу годами и десятилетиями. Поэтому используйте существующее программное обеспечение вместо того, чтобы начинать с нуля. Это не стоит того, с чем вы столкнетесь. Вы вообще знаете IPv6? Если не ты должен!

mailq
источник
3
Конечно, нет особого обязательства придерживаться RFC, но очень желательно, чтобы система когда-нибудь работала в Интернете. Хотя могут быть причины для создания собственной почтовой очереди, я полностью согласен с тем, что существующий код, используемый в программном обеспечении почтового сервера, следует использовать повторно, а не заново изобретать колесо.
the-wabbit