Situatie
Dorim sa fortam retransmiterea mesajelor care de prima data nu au fost livrate din anumite motive, dar nu dorim sa asteptam perioada de timp de livrare cum este setata din server (queue time). Implicit se asteapta 30 minute (hoststatus se reinoieste dupa 30 de minute) si pe urma se incearca din nou trimiterea de mesaje.
Solutie
Pasi de urmat
Cateodata mesajele trimise nu ajung la serverul destinatar chiar si daca acesta a revenit online sau problema de comunicare prin retea s-a remediat. Mesajele sunt tinute in coada (queue) si sunt marcate ca “Deferred: Connection timed out”. Adica nu au fost trimise in perioada de timp alocata pentru trimitere si vor fi retransmise cand expira perioada de asteptare.
Pentru a ne afisa mesajele care asteapta in coada , vom utiliza comanda:
# sendmail -bp
rezultatul comenzii va fi aproximativ asa (a se vedea comentariul Deferred):
/var/spool/mqueue (1 request) -----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------- p61J75u5037681 893 Fri Jul 1 14:07 <outgoing@adresa.ro> 8BITMIME (Deferred: Connection timed out with adresa.ro) Total requests: 1
Acum ca am stabilit ca exista mesaj care asteapta la coada, vom utiliza comanda
-v (verbose – va afisa pas cu pas ce executa comanda sendmail in acel moment)
-q (queue – parametrul scris fara interval orar va rula odata sendmail si va iesi din proces)
Pentru a forta trimiterea mesajelor mail ACUM , vom modifica sendmail cu urmatorii parametrii:
Se poate vedea ca perioada de timp este zero minute (0m) ceea ce va forta procesul sendmail sa incerce in acel moment trimiterea mesajelor care asteapta in coada (si nu cele 30 minute mentionate mai sus).
Se poate zice ca este un fel de overwrite de perioada de livrare
Leave A Comment?