Spedire email direttamente dalla shell testuale può risultare estremamente comodo per testare "al volo" le funzionalità del server Linux oppure per mandarsi log, informazioni diagnostiche o avvisi in tempo reale. In questa guida ho raccolto alcuni esempi estremamente pratici del comando "mail"
I passaggi sono stati convalidati con una nuova installazione di CentOS 7, ma dovrebbero funzionare anche con qualsiasi altra distribuzione Linux.
Prima di cominciare..
Prima di iniziare, assicuratevi che l'interfaccia di rete sia abilitata e la macchina possa accedere ad Internet. Per impostazione predefinita, infatti, così non è.
Sinceratevi poi che il pacchetto mailx sia installato: per farlo, impartite mail -V
: se la risposta del sistema è -bash: mail: command not found
, dovete completare il setup mediante yum install mailx -y
prima di proseguire
Semplice invio interattivo
Il modo più semplice di inviare una email da linea di comando è tramite il comando:
mail destinatario@dominio.com
Il sistema chiederà di specificare l'oggetto, quindi potremo digitare il corpo dell'email. A composizione ultimata, la combinazione Ctrl+D
spedisce il messaggio e chiude l'editor.
Il ricevente vedrà ricapitarsi una missiva il cui mittente è nel formato nomeutente@dominio.com, ma non contate sul fatto che sia proprio il "vostro" indirizzo abituale
Inviare a più destinatari
Per mandare lo stesso messaggio a più destinatari (gli indirizzi saranno visibili a tutti i riceventi), basta specificarli uno dopo l'altro:
mail destinatario@dominio.com destinatario2@dominio2.com destinatario3@dominio3.com
Specificare l'oggetto nel comando
Per saltare un passaggio interattivo, è possibile indicare l'oggetto immediatamente:
mail -s "Questo è l'oggetto della mia mail" destinatario@dominio.com
Specificare il corpo della mail nel comando
Se interpreto correttamente la documentazione ufficiale, non è previsto che si possa inserire il corpo della mail direttamente come parametro. Per aggirare il problema, possiamo usare la concatenazione (perché funzioni è obbligatorio inserire anche l'oggetto con il parametro -s
, come mostrato nell'esempio precedente):
echo "Questo testo viene inserito come corpo" | mail -s "Questo è l'oggetto della mia mail" destinatario@dominio.com
Indicare un indirizzo a piacere come mittente
Se volete indicare espressamente l'indirizzo dal quale proviene il messaggio (sarà lo stesso utilizzato automaticamente in caso il destinatario provasse a rispondervi), usate questo formato:
mail -S from=mittente@miodominio.com destinatario@suodominio.com
Allegare un file
Per allegare il documento salvato in /home/zane/miofile.txt all'email, usate quanto segue:
mail -a /home/zane/miofile.txt destinatario@dominio.com