Pagine

mercoledì 3 dicembre 2008

Mailx e blat, mail via shell su Linux e Windows

Premessa
Spesso, nella amministrazione di un computer, un servizio o un sito, può essere utile avere a disposizione un metodo che permetta di spedire una o più mail tramite shell.

Scenario
Gli scenari possibili sono veramente moltissimi e variegati. Giusto a titolo di esempio mi permetto di enunciare alcune mie esigenze:
  • Effettui il backup dei documenti presenti su una o più macchine e fai l'upload di tali backup su un server via ftp tutti i giorni: vuoi ricevere una mail che ti confermi l'avvenuta esecuzione della operazione
  • Hai un database Mysql su un server; ogni settimana fai un controllo che gli utenti si siano loggati negli ultimi 7 giorni: vuoi che una mail ti restituisca il report con i nominativi per poter chiamare coloro che non hanno effettuato il login
  • Hai un server con risorse limitate; ogni giorno effettui alcuni controlli e vuoi ricevere via mail un report esaustivo
Soluzione su linux
Coloro che usano linux possono utilizzare il pacchetto mailx.
Si controlli, quindi, che sia installato.
A questo punto si può decidere di utilizzare mailx in maniera interattiva o automatica.
Nel primo caso, poco utile per gli scenari disegnati prima, posso digitare via shell:

mail qualcuno@daqualcheparte.com


L'output che si riceve è una serie di richieste che chiedono l'oggetto, il corpo del testo ed eventuali destinatari in cc.
Alla fine del testo del corpo del messaggio si può inserire un punto su una riga vuota che comunica a mailx che si è terminato il messaggio.
Si segua l'esempio di sotto:

Subject: Ciao!
Ciao,
come stai?
Spero tutto bene
.
cc: qualcunaltro@altrove.it

L'utilizzo interessante di questo software, però, è la
possibilità di utilizzarlo in maniera automatica in modo da poterlo includere in uno script.
In tal caso, il medesimo risultato si ottiene creando un file di testo ed inserendo il corpo del messaggio; successivamente basterà digitare, su shell:

mail -c qualcunaltro@altrove.it -s "Ciao!" qualcuno@daqualcheparte.com <>

Ovviamente, il testo con messaggio può contenere i report di cui si parlava prima.


Soluzione su windows
Esistono molti programmi su windows che effettuano l'invio di mail via consolle.
Tra questi mi sono trovato particolarmente bene con Blat.
Dopo aver installato il programma si può vedere la pagina di help.
In particolare per mandare una mail in modo automatico si può procedere come segue:

blat file_allegato -to qualcuno@dovesitrova.it

NB: bisogna assicurarsi, prima, che blat.exe sia nel percorso degli eseguibili.
Se così non è, al posto di "blat" sarà necessario digitare "C:\percorsoesatto\blat.exe"

Nessun commento:

Posta un commento