Molti programmatori già sanno com’è facile inviare email da shell. Una semplice invocazione al comando “mail” con il destinatario passato come parametro, gli invierà tutti i dati letti dallo standard input.
$ mail giovanni@emailprova.it < /tmp/testo.txt
$ echo "Ci vediamo questa sera?" | mail milena@emailprova.it
Il comando mail accetta anche altri parametri:
- -b bcc-addr Invia l’email in copia carbone nascosta agli indirizzi specificati.
- -c cc-addr Invia l’email in copia carbone agli indirizzi specificati.
- -s subject Specifica l’oggetto dell’email.
Ad esempio:
$ echo "andiamo fuori per una pizza?" | mail \
-c "marco@emailtest.it, franco@emailtest.it" \
-s "Serata pizza" nicola@emailtest.it
A volte però, nasce la necessità di inviare uno o più allegati, che non sono semplice testo, ma immagini, o file binari in generale.
Volendo usare il comando “mail”, sarebbe necessario codificare questi file secondo lo standard MIME, preparare una email testuale ed inviarla.
A venirci in aiuto, però, c’è il programma “mutt“.
Mutt è un client email, interattivo, orientato al testo, che all’occorrenza diventa un utilissimo strumento da riga di comando, per inviare email con allegati.
Ad esempio:
echo "Ecco la canzone che mi chiedevi." | mutt \
-a "canzone.mp3" \
-s "Canzone" marco@emailtest.it
In questo esempio ci sono tutte le parti più importanti di una email:
- L’oggetto, passato dall’opzione -s.
- Il corpo principale, letto dallo standard input.
- Il destinatario (marco@emailtest.it).
- L’allegato, specificato dall’opzione -a.
Se, infine, non si vuole specificare nessun testo è possibile passare una riga vuota:
echo | mutt -a "/tmp/backup.tar.gz" \
-s "Backup" sysadmin@serveremail.com
O /dev/null:
mutt -a "/tmp/backup.tar.gz" -s "Backup" \
sysadmin@serveremail.com < /dev/null
É possibile scaricare mutt all’indirizzo http://www.mutt.org/, questo programma è disponibile per una enorme quantità di dialetti unix / linux e per Microsoft Windows.