Come posso ritardare la consegna della posta attraverso un relay SMTP, possibilmente sendmail

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

  •  08-07-2019
  •  | 
  •  

Domanda

Ho l'obbligo di ritardare la consegna della posta tramite un inoltro SMTP.

cioè.

Il messaggio di posta viene ricevuto correttamente al momento T. Inoltra il messaggio alla destinazione all'ora T + 4 ore.

È possibile in sendmail o in qualsiasi altro relè SMTP.

La piattaforma di distribuzione è IBM AIX.

È stato utile?

Soluzione

Avresti dovuto essere almeno un po 'più specifico nella tua domanda. Aggiungerò comunque alcuni suggerimenti.

Se desideri solo consegnare la posta ogni quattro ore, devi eseguire sendmail in modalità di sola coda (QUEUE_MODE = " cron " ;; in sendmail.conf) e impostare la coda da eseguire ogni quattro ore (QUEUE_INTERVAL = " 4h " ;;). Penso che questo si applichi solo ai sistemi simil-debian, ma il principio è lo stesso ovunque: imposti la modalità coda su cron (questa è in realtà controllata dagli argomenti, con i quali avvii sendmail) e poi la elabori periodicamente.

Se vuoi solo ritardare la consegna della posta, ci sono anche diversi modi per farlo, a seconda del perché vuoi farlo. Una soluzione popolare è greylisting , che fa proprio quanto segue: quando un host si connette al tuo MTA (sendmail, f.ex.), viene rimbalzato con la richiesta di riprovare in un intervallo di tempo. Un mailer correttamente configurato lo farà - proverà a inviare di nuovo la posta e alla fine il messaggio verrà accettato e recapitato (o inoltrato). La maggior parte dei robot spam, d'altra parte, non proverà a inviare nuovamente il messaggio alla ricezione di un errore. Se hai bisogno di greylisting su sendmail puoi leggere qui: http://www.greylisting.org/ implementazioni / sendmail.shtml

Spero che questo abbia aiutato almeno un po '.

EDIT:

Ok, quindi ora vedo cosa devi fare. Ecco la possibile soluzione usando sendmail (mi occupo di sendmail in un modo o nell'altro ormai da anni, quindi ..: P): ne usi due.

Il primo riceve solo la posta e la mette in coda e (ed è importante) NON riesce a elaborare la coda. La seconda istanza di sendmail esegue una coda separata e il suo QUEUE_MODE è impostato su demone o cron (diciamo, ogni minuto). Ora tutto ciò che serve è scrivere uno script esterno, che sposterebbe la posta dalla prima coda alla seconda, una volta che la "età" del messaggio è raggiunto. Dato che gli elementi in coda sono solo file, è un compito facile, fatto in poche righe di, diciamo, perl (l'inferno, anche uno script di shell può farlo). Spostare gli elementi della coda da una coda all'altra è facile come spostare i file da una directory all'altra. Si noti che questa tecnica è ampiamente utilizzata nelle soluzioni di elaborazione della posta, come ad esempio spamassassin, quindi non è una stranezza, evocata dalla mia mente desolata: P

Spero che questo ti dia un suggerimento o due.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top