¿Cómo puedo retrasar la entrega de correo a través de un relé SMTP, posiblemente sendmail

StackOverflow https://stackoverflow.com/questions/835743

  •  08-07-2019
  •  | 
  •  

Pregunta

Tengo el requisito de retrasar la entrega del correo a través de un relé SMTP.

es decir

El mensaje de correo se recibió correctamente en el momento T. Reenviar mensaje a destino a la hora T + 4 horas.

¿Es esto posible en sendmail o en cualquier otra retransmisión SMTP?

La plataforma de implementación es IBM AIX.

¿Fue útil?

Solución

Deberías haber sido al menos un poco más específico en tu pregunta. Voy a tirar algunas sugerencias de todos modos.

Si solo desea entregar el correo cada cuatro horas, debe ejecutar sendmail en modo de solo cola (QUEUE_MODE = " cron " ;; en sendmail.conf) y configurar la cola para que se ejecute cada cuatro horas (QUEUE_INTERVAL = " 4h " ;;). Creo que esto solo se aplica a sistemas similares a Debian, pero el principio es el mismo en cualquier lugar: configura el modo de cola en cron (esto en realidad está controlado por los argumentos con los que inicia sendmail) y luego lo procesa periódicamente.

Si solo desea retrasar la entrega del correo, también hay varias formas de hacerlo, dependiendo de por qué desee hacerlo. Una solución popular es greylisting , hace exactamente lo siguiente: cuando un host se conecta a su MTA (sendmail, f.ex.), se devuelve con la solicitud para intentar nuevamente en algún intervalo de tiempo. Un programa de correo configurado correctamente solo hará eso: intentará enviar el correo nuevamente y, finalmente, el mensaje será aceptado y entregado (o reenviado). La mayoría de los bots de spam, por otro lado, no intentarán reenviar el mensaje al recibir un error. Si necesita una lista gris en sendmail, puede leer aquí: http://www.greylisting.org/ implementaciones / sendmail.shtml

Espero que esto haya ayudado al menos un poco.

EDITAR:

Ok, entonces ahora veo lo que necesitas hacer. Aquí está la posible solución usando sendmail (he estado tratando con sendmail de una forma u otra durante años, así que ...: P): Usas dos de ellos.

El primero solo recibe correo y lo pone en cola y (y es importante) NO puede procesar la cola. La segunda instancia de sendmail ejecuta una cola separada y su QUEUE_MODE se establece en daemon o cron (digamos, cada minuto). Ahora todo lo que necesita es escribir una secuencia de comandos externa, que movería el correo de la primera cola a la segunda, una vez que la "edad" del mensaje se alcanza. Dado que los elementos de la cola son solo archivos, es una tarea fácil, realizada en unas pocas líneas de, por ejemplo, perl (demonios, un script de shell también puede hacer eso). Mover elementos de la cola de una cola a otra es tan fácil como mover archivos de un directorio a otro. Tenga en cuenta que esta técnica es ampliamente utilizada en soluciones de procesamiento de correo, como, por ejemplo, spamassassin, por lo que no es una rareza, evocada por mi mente enferma: P

Espero que esto te dé una pista o dos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top