In questo articolo ti spiego come configurare ssmtp, un programma che permette ad una macchina Linux di inviare email utilizzando un server SMTP esterno (per esempio Gmail). In questo articolo vediamo come configurare ssmtp per inoltrare le notifiche di BackupPC, ma vedrai che ti risulterà poi facile utilizzarlo anche in altri contesti.
BackupPC e ssmtp
Per poter inviare email è necessario disporre di un server SMTP. Per questo motivo – come ho scritto nell’articolo in cui ti spiego come installare BackupPC su Ubuntu 16.04 – l’installazione di BackuPC dai repository di Ubuntu prevede, come dipendenza, l’installazione del server SMTP Postfix.
Ma ci sono diversi motivi per cui può non essere una buona idea installare un server SMTP:
- perché già disponi di un server SMTP (installato in un’altra macchina della tua LAN, messo a disposizione dal provider della tua connessione Internet o da servizi come Gmail);
- perché ti basta inviare verso l’esterno le email generate dal sistema locale e non ti servono altre funzioni tipiche di un server SMTP;
- perché più codice gira in una macchina, più risorse (CPU e RAM in primis) vengono utilizzate, più aggiornamenti vengono scaricati e maggiori sono i potenziali bug del sistema.
ssmtp è un software, leggero e facile da configurare, che si occupa esclusivamente di inoltrare ad un server SMTP esterno le email generate dal sistema in cui è installato.
Installare ssmtp
Se nel sistema è già presente un server SMTP dovresti disinstallarlo. Ma se per gestire l’installazione dei programmi stai utilizzando il package manager della tua distribuzione, allora l’installazione di ssmtp dovrebbe automaticamente provocarne la rimozione.
Nel caso di Ubuntu l’installazione di ssmtp comporta la rimozione automatica di Postfix:
sudo apt-get install ssmtp
Configurare ssmp
impostazione di un relay STMP esterno
In rete trovi parecchia documentazione su come configurare ssmtp, quindi mi limito a mostrarti come usare Gmail:
sudo vi /etc/ssmtp/ssmtp.conf
Configurazione minima per Gmail:
root=backuppc mailhub=smtp.gmail.com:587 AuthUser=<tuo account Gmail> AuthPass=<password tuo account Gmail> AuthMethod=LOGIN UseTLS=Yes UseSTARTTLS=Yes
L’impostazione root=backuppc serve ad inoltrare – in questo caso all’indirizzo email associato all’alias di sistema backuppc – i messaggi indirizzati agli utenti locali (cioè destinati a indirizzi email il cui dominio è uguale a quello della macchina).
Dato che il file ssmtp.conf contiene una password, ti consiglio di limitarne l’accesso in lettura:
sudo chmod 600 /etc/ssmtp/ssmtp.conf
Verifica il funzionamento di ssmtp:
echo "Messaggio di prova" | sudo ssmtp -vvv <il tuo indirizzo email>
configurare ssmtp per BackupPC
Ora sai come configurare ssmtp, ma per poterlo usare con BackupPC ti resta un problemino da risolvere ….
Lo script BackupPC_sendEmail, usato da BackupPC per inviare email, esegue il comando sendmail con il parametro -t, non compatibile con ssmtp. Dobbiamo quindi intervenire con un piccolo “hack” (ripreso dalla soluzione suggerita da Qnap per l’installazione BackupPC nei suoi NAS) che aggira il problema con uno script che accetta il parametro -t, lo ignora e richiama ssmtp.
sudo touch /usr/local/bin/mysendmail.sh sudo chmod 755 /usr/local/bin/mysendmail.sh sudo vi /usr/local/bin/mysendmail.sh
Questo è il codice dello script mysendmail.sh:
#!/bin/bash # from="" while [ "$#" -gt 0 ]; do case "$1" in -f) shift from="$1" ;; *) ;; esac shift done msg=$(cat) to=$(echo "$msg" | /usr/bin/head -1 | grep "^To: ") to=${to#To: } ( echo "From: $from" ; echo "$msg" ) | /usr/sbin/ssmtp $to
Non ti resta che linkare questo script al comando sendmail:
sudo rm /usr/sbin/sendmail sudo ln -s /usr/sbin/sendmail /usr/local/bin/mysendmail.sh
Finito.
Conclusioni
Installare un server SMTP non è proprio una passeggiata e una cattiva configurazione può comportare molti disagi. Saper configurare ssmtp ti permetterà di sfruttare un server SMTP professionale semplicemente disponendo delle dovute credenziali che ti autorizzano all’invio. In questo modo puoi gestire in modo adeguato i messaggi inviati da un server senza doverti preoccupare della gestione del server di posta.
Buon lavoro e buon divertimento.
Lascia un commento