邮件队列重试间隔实践


8

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

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

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

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

Answers:


6

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

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


3
当然,并没有硬性要求遵守RFC,但是如果系统有一天需要在Internet上运行,则强烈建议这样做。尽管可能有理由实现自己的邮件队列,但我完全同意应该重用邮件服务器软件中使用的现有代码,而不是重新发明轮子。
the-wabbit 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.