邮件队列重试间隔实践

And*_*rey 8 email smtp

我正在配置一个定制的邮件队列。问题是发送邮件可能会出错。通常,人们不会知道邮件没有到达目的地的原因。所以最简单的解决方法是尝试再次发送邮件。以下是我从口中知道的一些算法:

  • 复制从某个时间开始的下一次重试队列中的时间:1 分钟、2 分钟、4 分钟等。
  • 指定一系列间隔(这是前一个选项的一般情况):5 分钟、5 分钟、10 分钟、30 分钟等。

在某些时候,再次尝试发送邮件将毫无意义。无论如何,系统包括未发送邮件的日志。

你对这方面的良好做法了解多少?什么是“好的”保持间隔?至少,我应该考虑哪些事实来选择间隔?

mai*_*ilq 6

必须遵循 RFC 5321,其中明确说明了如何实施重试策略:http : //tools.ietf.org/html/rfc5321#section-4.5.4

当您尝试实现自己的邮件服务器时,您必须完全阅读(并理解!)此 RFC。但我必须明确强调,几乎不需要实现自己的邮件服务器(客户端)。有很多已经存在的(经过测试的!)解决方案,这些解决方案在数年和数十年内都非常有效。所以使用现有的软件而不是从头开始。你将遇到的麻烦不值得。你知道IPv6吗?如果不是你应该!

  • 当然,坚持 RFC 并没有硬性义务,但是如果系统有一天需要在 Internet 上工作,则强烈建议您这样做。虽然可能有理由实现自己的邮件队列,但我完全同意邮件服务器软件中使用的现有代码应该重用而不是重新发明轮子。 (3认同)