Inviare email di report dalla console di Voyage Linux
Su Voyage Linux per problemi di dipendenze non si riesce ad installare il classico sendmail per poter mandare email, però è possibile utilizzare nullmailer che permette di utilizzare un smtp esterno al suo posto, come client email invece possiamo utilizzare mutt che oltre a permettere l’invio da parametri ha anche una sorta di interfaccia volendo:
apt-get install nullmailer mutt
Installando nullmailer verranno poi richiesti i parametri per la connessione al server esterno messi nel formato:
smtpserver.your-isp.com smtp --user=[user] --pass=[password]
Nel caso volessimo usare la cifratura SSL o TLS:
smtpserver.your-isp.com smtp --ssl --port=465 --user=[user] --pass=[password]
smtpserver.your-isp.com smtp --starttls --port=587 --user=[user] --pass=[password]
Per verificare eventuali errori è possibile controllare il file:
tail /var/log/syslog
Nel caso poi si ottenga l’errore “Server SSL/TLS certificate is untrusted” magari per via che è un certificato fatto in casa o comunque non verificato basta aggiungere il parametro:
smtpserver.your-isp.com smtp --ssl --port=465 --insecure --user=[user] --pass=[password]
smtpserver.your-isp.com smtp --starttls --port=587 --insecure --user=[user] --pass=[password]
Per poter utilizzare la cifratura occorre avere almeno la versione 1.10 di nullmailer, su Ubuntu 12.04 ad esempio c’è solo la 1.05, per avere la 1.11 serve aggiungere un PPA:
sudo apt-add-repository ppa:mikko-red-innovation/ppa
sudo apt-get update
sudo apt-get install nullmailer
Per far usare il mittente a mutt occorre editare il file .muttrc nella home:
nano [home]/.muttrc
Indicando il mittente come:
set from="Sender <email@your-isp.com>"
L’invio di email da console può essere richiamato in due maniere, o passando il testo direttamente:
echo "Qui il testo del messaggio" | mutt -s "Oggetto del messaggio" emaildestinatario@your-isp.com
printf "Qui il testo del messaggio\ncon il salto riga" | mutt -s "Oggetto del messaggio" emaildestinatario@your-isp.com
Oppure leggendo il corpo del messaggio da un file:
mutt -s "Oggetto del messaggio" emaildestinatario@your-isp.com < /path/file
Se aprendo mutt vi viene notificato che non esiste il percorso /var/mail/root basta uscire e crearlo:
touch /var/mail/root
Aprite poi di nuovo mutt e non dovreste più avere la notifica.
Nota: Se avete dei cronjob che girano, magari anche a tempi ridotti, per evitare che intasino la coda di invio basta aggiungere “ >/dev/null 2>&1” in coda al comando schedulato per non far generare un output e quindi non far creare un messaggio.