Inviare una mail da Terminale

ATTENZIONE: questo articolo è stato scritto oltre un anno fa, ed i contenuti potrebbero non essere più validi o compatibili. Sei pregato di tenerne conto, e se hai informazioni in merito di segnalarmele, grazie.

mail-sentPuò essere molto utile, in script ad avvio automatico ad esempio per valutare il buon operato dello script stesso, far sì che una mail venga inviata al termine dell’esecuzione dello script oppure, per non riempirsi la mailbox di messaggi automatici, solo in caso di errori.

Oggi mi sono trovato con questo problema su una distribuzione Suse Linux Enterprise Server 10.2, SLES per i più intimi, ed ho risolto egregiamente grazie all’utilizzo di [W:Mutt], che non è un semplice comando da shell anche se è possibile utilizzarlo come tale, ma un vero client di posta elettronica testuale a tutti gli effetti, e pure molto potente.

Io ho trovato Mutt preinstallato sulla SLES, ma ho visto che non è difficile installarlo anche su altre distribuzioni, sia dalle repository ufficiali che dai sorgenti. È possibile installarlo anche su Mac OS X, ma non l’ho ancora provato.

Comunque, dando per buono che Mutt sia installato e funzionante, le modalità per inviare una mail da riga di comando sono alla portata di tutti.

Mail semplice:

echo "Questo diventa il testo della mail posso scriverci quello che mi pare" | mutt -s "Oggetto della mail"  indirizzo@destinatario.it

Ovviamente “indirizzo@destinatario.it” deve essere sostituito con l’indirizzo reale del destinatario.

Mail con allegato:

Possiamo osare di più, inviando anche un allegato:

echo "Questo diventa il testo della mail posso scriverci quello che mi pare" | mutt -s "Oggetto della mail" -a /percorso/allegato.zip indirizzo@destinatario.it

Nel mio caso, l’allegato era scomodo e dato che era solo testo volevo che l’allegato, il risultato di un altro comando da terminale salvato su file, diventasse il testo della mail.
Niente di più facile, il comando cambia di poco:

mutt -s "Oggetto della mail" indirizzo@destinatario.it < /percorso/fileditesto.txt

questa ultima variabile comunque non ci vieta di utilizzare comunque l’opzione “-a” per inviare anche un allegato, un file diverso:

mutt -s "Oggetto della mail" -a /percorso/allegato.zip indirizzo@destinatario.it < /percorso/fileditesto.txt

Per scoprire tutte le opzioni di Mutt da riga di comando, e sono parecchie, basta digitare il “solito” man mutt.

Per saperne di più, vi rimando al sito ufficiale di Mutt.

Tags: , , ,

4 Risposte a “Inviare una mail da Terminale”

  1. rodolfo rizzo 27 Feb 2010 at 22:51 #

    Ho provato, la mail normale e va, mentre quella con l’allegato no:

    echo “mio messaggio” | mutt -s “oggetto” -a /home/rodolfo/immagine.jpg rodolfoxxxxxxx@gmail.com

    Impossibile fare stat di rodolfoxxxxxxxx@gmail.com: Nessun file o directory
    rodolfoxxxxxxxxxx@gmail.com: impossibile allegare il file.

    sembra che voglia allegare l’indirizzo e-mail del destinatario..
    Bel sito, complimenti. Mi sono iscritto alla newsletter.

  2. robrota 28 Feb 2010 at 10:07 #

    Ciao Rodolfo,
    i comandi non si comportano allo stesso modo su tutti i sistemi operativi, non so con quale OS hai provato ma prova a dare un’occhio al manuale in linea con il classico comando

    man mutt

    per vedere le opzioni disponibili e le eventuali diversità di sintassi.

    rob

    PS.. ti ho alterato l’indirizzo mail nel tuo commento, altrimenti ti ritrovi pieno di spam 😉

    • rodolfo rizzo 28 Feb 2010 at 19:36 #

      Allora, ho guardato nelle pagine man e (nonostante il mio pessimo inglese) sono riuscito a risolvere. La sintassi che funziona su ubuntu (nel mio caso karmic koala 9.10), è la seguente:

      echo “testo del messaggio” | mutt -s “oggetto” -a /percorso/del/file — indirizzo@email.com

      In pratica bisognava solo aggiungere i due trattini (–) prima dell’indirizzo email del destinatario. Attenzione, i due trattini devono essere separati dall’indirizzo email.

      Trovo molto pratico questo metodo per inviare mail velocemente dal terminale, mi sono fatto anche un comodo script in python per non dover scrivere tutte le volte il comando, inoltre mutt è un client di posta elettronica ricco di funzionalità (assolutamente da provare!).

Trackbacks/Pingbacks

  1. L’insostenibile semplicità della posta elettronica - 16 Mag 2010

    […] sappia inviare una mail da terminale, con una facile ricerca in rete è in grado anche di mandare una mail con delle intestazioni […]

Dubbi o suggerimenti? Lascia un commento!

I love Instagram