Inviare mail da terminale Ubuntu

Inviare mail da terminale Ubuntu 18.04 con SSMTP

Sapevi che puoi Inviare mail da terminale di Linux? Non c’è da stupirsi, credo. La domanda principale è perché dovresti prenderti la briga di inviare e-mail dal terminale Linux?

Ci potrebbero essere varie ragioni per questo. Supponiamo di avere un server Linux che devi mantenere protetto. Con la configurazione della posta, può inviarti automaticamente e-mail nel caso in cui ci sia un avviso. Questo è uno dei tanti casi d’uso in cui inviare mail da terminale di Ubuntu può aiutarti alla grande.

Vediamo come inviare mail da terminale Ubuntu con SSMTP.

Inviare mail da terminale Ubuntu utilizzando SSMTP
Inviare mail da terminale Ubuntu utilizzando SSMTP

Cos’è l’SSMTP e come funziona?

SMTP (Simple Mail Transfer Protocol) è uno dei protocolli (insieme di regole e formati per dati e comunicazioni) utilizzati per l’invio e la ricezione di messaggi di posta elettronica. Sebbene fornitori come Outlook, Gmail di solito utilizza protocolli proprietari, forniscono servizi SMTP in modo che l’utente possa accedere ai propri messaggi di posta elettronica da qualsiasi client.

Sono necessarie due parti software: il server SMTP (ospitato dal fornitore di posta elettronica) e il client SMTP presente nel sistema.

SSMTP è uno di questi programmi client che può aiutarti a inviare le e-mail. Quando si invia un messaggio di posta elettronica, il client lo inoltra al server SMTP del fornitore, che lo invia al fornitore di posta elettronica del destinatario. Infine, sarà inoltrato al destinatario.

Per ulteriori informazioni su SMTP, utilizzare questo articolo wiki su SMTP.

Iniziamo con SSMTP nel modo giusto.

Inviare mail da terminale Linux tramite SSMTP

Vediamo come è possibile inviare posta nella riga di comando linux con l’aiuto di SSMTP.

Installazione di SSMTP

SSMTP è disponibile come pacchetto nella maggior parte delle distribuzioni Linux. Sfoglia il repository della tua distro per assicurarti. In Ubuntu 18.04 è possibile installare SSMTP come segue:

sudo apt install ssmtp

Ti consiglio prima di eseguire l’installazione di aggiornare Ubuntu con i comandi:

sudo apt-get update
sudo apt-get upgrade

Configurazione di SSMTP

Al termine, è necessario configurare SSMTP.

Poiché questo articolo si concentra principalmente sull’invio di una posta, ci atteniamo alla configurazione di base di SSMTP. È possibile utilizzarlo solo per inviare posta. Ogni utente deve specificare e-mail e password ogni volta che invia un messaggio di posta elettronica. Supponiamo che tutti utilizzino lo stesso server SMTP.

Alcuni degli altri articoli che potresti trovare online ti guideranno a memorizzare nome utente e password nel file di configurazione (/etc/ssmtp/ssmtp.conf). Consentirà a tutti gli utenti di inviare un’e-mail utilizzando le credenziali nella configurazione senza costringere ogni utente ad avere la propria e-mail e password.

“Ti consiglio di non eseguire tale configurazione a meno che tu non sia molto sicuro.”

È necessario modificare il file conf:

sudo gedit /etc/ssmtp/ssmtp.conf

Se hai familiarità con gli editor della riga di comando come Nano, Vim, Emacs e altri, sentiti libero di usarli. Aggiungere il file o sostituirlo con l’intero contenuto del file con il testo seguente:

mailhub=smtp.gmail.com:587
UseTLS=YES
UseSTARTTLS=YES

Anche se elimini l’intera configurazione e la sostituisci con solo lo snippet di cui sopra, dovrebbe funzionare perfettamente. Se hai problemi invece scrivimi nei commenti.

Se si utilizza un altro fornitore di posta elettronica, indicare nel campo mailhub server:port il server di posta utilizzato. In caso di difficoltà, assicurati di farci sapere nei commenti.

Invio di e-mail in Linux tramite SSMTP

Costruiamo un messaggio che deve essere inviato in un file denominato mail.txt.

To: info@bartolomeoalberico.it
Subject: Inviare mail da terminale Ubuntu

Questo è in esempio per inviare mail da terminale Ubuntu utilizzando SSMTP

Per inviare questa posta, è necessario utilizzare il formato come segue.

ssmtp -au EMAIL_ADDRESS -ap EMAIL_PASSWORD info@bartolomeoalberico.it < mail.txt

Sostituire EMAIL_ADDRESS, EMAIL_PASSWORD con i valori. Potresti notare una cosa info@bartolomeoalberico.it è menzionato sia nel messaggio che nel comando.

Questo perché l’indirizzo utilizzato nel comando ssmtp verrà utilizzato come ccn e l’indirizzo menzionato nel messaggio verrà utilizzato come indirizzo.

Errori invio mail da terminale

La mia scelta di usare il server smtp di Google è solo per non dovermi creare una nuova mail o un nuovo servizio solo per questo utilizzo, ma Google è troppo poco permissivo e potrebbe essere comune un errore del tipo o simile:

ssmtp: Authorization failed (535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 l12sm3234587qcu.31)

oppure un errore simile ma del tipo 534.
Non è altro che Google che ci sta impedendo l’accesso… per la nostra sicurezza. Si… ovviamente lo fa per noi! 

Inviare mail da terminale - Accesso bloccato Gmail
Inviare mail da terminale – Accesso bloccato Gmail

Praticamente sembra che se il suo super sistema automatico rileva un tentativo “sospetto” ne impedisca l’accesso.
Per ovviare a ciò basta effettuare il login a questo indirizzo, quindi effettuare prima un logoff se si è già connessi:

https://accounts.google.com/b/0/DisplayUnlockCaptcha

da browser e dalla postazione che si sta utilizzando.
Eventualmente provare a riavviare e poi dovrebbe funzionare il tutto. Molte volte però non basta, e se funziona, un giorno potrebbe tornare a non funzionare (esperienza personale).
Eventualmente provare da browser a cambiare password, molti riportano poi esito positivo.

Come detto in precedenza potrebbe comparire anche questo errore:

ssmtp: Cannot open smtp.gmail.com:587

In questo caso rivedere bene permessi ai file e utenti/gruppi. Rileggere bene il tutorial per le spiegazioni.

In caso di altri errori dare sempre un’occhiata ai file di log:

/var/log/mail.log
/var/log/mail.err

Leggere bene il tipo di errore ed eventualmente dare anche un’occhiata ai limiti di un account google gratuito:
https://support.google.com/a/answer/166852?hl=it

Conclusione

Abbiamo visto come inviare mail da terminale Ubuntu utilizzando l’utility SSMTP. Puoi divertirti a cambiare la configurazione del server di posta a tuo piacimento.

Autore Bartolomeo

Consulente tecnico con la passione per il web e la tecnologia e tutto quello che le ronza intorno.
Nel tempo libero scrivo articoli per il mio blog su argomenti vari, in particolare su configurazione Windows, Linux e WordPress.

Condividi questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ho letto la policy privacy e accetto il trattamento dei miei dati personali in conformità al D.Lgs. 196/2003