Fa un any aproximadament vaig comentar que quan envio mails faig que s’enviïn després d’un minut. Així evito errors tipus enviar el mail a la persona equivocada. Tinc un minut per adonar-me’n i cancel·lar l’enviament.
Un any després el sistema segueix en funcionament, i per sort durant aquest any diria que no m’he equivocat cap cop (o un?). Vaja, gairebé poc i en tot cas era poc important.
Però el sistema té un petit problema: quan un envia un mail i vol apagar l’ordinador (o adormir-lo, per anar a dormir). En aquests casos obro una consola i faig «mailq» per veure si hi ha mails que estan esperant ser enviats.
Un altre problema inherent amb el sistema d’enviar els mails amb postfix és que si per algun motiu postfix no pot enviar els mails no ho veig. Això només m’ha passat si postfix no pot resoldre la IP del servidor de mail (per exemple, engego l’ordinador sense connexió a Internet, postfix s’engega, llavors connecto l’ordinador a Internet però postfix queda amb un estat que no sap resoldre les IPs). Un altre cas seria que el servidor de mail està caigut, en aquest cas tampoc veuria que el mail no s’ha enviat.
El tema de resoldre la IP m’ha passat un parell de cops. Tipus envio varis emails, ningú contesta. L’endemà faig mailq per curiositat i tots els mails estaven a la cua per ser enviats.
Bé doncs, per solucionar els dos problemes (tenir més present si els mails s’envien, i saber si encara hi ha mails esperant a ser enviats, sigui perquè el mail conté un adjunt gran, la connexió és lenta, o perquè està esperant a ser enviat) vaig fer un petit programa amb Qt que posa un quadrat verd o vermell aprop del rellotge.
El quadrat és verd si no hi ha mails enviant-se, i és vermell si hi ha mails pendents de ser enviats. Quan és vermell hi podria posar el número de mails pendents de ser enviats, ho tinc pendent però ho trobo poc necessari.
Unes captures de pantalla per veure-ho millor:
O bé, si hi ha mails pendents de ser enviants:
Penso que hi ha sistemes per vigilar la CPU, disc i altres coses a la barra de l’estat que segurament s’hi poden fer plugins i que facin avisos per diferents estats. Però aquell dia m’era més còmode fer una mica de C++, pensant que algun dia potser hi posaré els números a sobre.
Si algú té alguna suggerència (què més podria anar amb un estat d’aquest tipus?) que deixi un comentari o un mail a carlesblog@pina.cat . Si el sistema tingués alguna utilitat i que no es pogués fer amb altres programes potser ho afegiria al meu programa i potser deixaria el codi disponible.
Bàsicament el què fa és executar cada 5 segons mailq i de la sortida buscar-ne una expressió regular per veure el número de mails pendents a ser enviat. Podria fer el mateix amb altres comandes (quines?) per posar colors. Com ja he dit: deixeu algun comentari o envieu un mail a carlesblog@pina.cat.
Si voleu veure el codi, per canviar-lo, adaptar-lo, etc.:
Vista Gitweb, o bé el podeu baixar (premeu snapshot), o copiar el repositori:
git clone git://git.pinux.info/misc.git
I dins el directory qnotification
Leave a Reply