Prácticas de intervalo de reintento de cola de correo

8

Estoy configurando una cola de correo personalizada. La cuestión es que puede haber errores al enviar correo. Normalmente, uno no sabrá la razón por la cual el correo no llegó a su destino. Entonces, la solución más simple es intentar enviar el correo nuevamente. Aquí hay algunos algoritmos que sé por boca:

  • Duplique el tiempo en la cola para el próximo reintento que comience en algún momento: 1 min, 2 min, 4 min, etc.
  • Especifique una serie de intervalos (que son un caso general de la opción anterior): 5 min, 5 min, 10 min, 30 min, etc.

En algún momento será inútil intentar enviar el correo nuevamente. De todos modos, el sistema incluye un registro para el correo no enviado.

¿Qué sabe sobre las buenas prácticas en este tema? ¿Qué es un intervalo de espera "bueno"? Al menos, ¿qué hechos debo tener en cuenta para elegir los intervalos?

Andras Gyomrey
fuente

Respuestas:

6

Usted debe seguir el RFC 5321 que establece explícitamente cómo implementar estrategias de reintento: http://tools.ietf.org/html/rfc5321#section-4.5.4

Debe leer completamente (¡y comprender!) Este RFC cuando intente implementar su propio servidor de correo. Pero debo enfatizar explícitamente que casi no hay necesidad de implementar su propio servidor de correo (cliente). Hay muchas soluciones ya existentes (¡probadas!) Que son productivas durante años y décadas. Por lo tanto, use el software existente en lugar de comenzar desde cero. No vale la pena el problema con el que te encontrarás. ¿Eres consciente de IPv6? Si no deberías!

mailq
fuente
3
No hay una obligación difícil de adherirse a las RFC, por supuesto, pero es muy recomendable si el sistema necesita trabajar en Internet algún día. Si bien puede haber razones para implementar una cola de correo propia, estoy totalmente de acuerdo en que el código existente utilizado en el software del servidor de correo debe reutilizarse en lugar de reinventar la rueda.
the-wabbit