Inviare email da terminale

EmailTerminale

 

Molto spesso capita di dover integrare l'invio di una email a certi nostri script, per informarci su determinate situazioni, un esempio banale, collegandoci ad uno dei nostri post precedenti, potremmo farci dire attraverso una email, quando un file torrent è stato scaricato, oppure ogni volta che si fa un accesso tramite ssh, ci facciamo dire che è stato effettuato un accesso. Insomma questa funzione la possiamo integrare dove vogliamo.

Ma andiamo con ordine, per fare questo useremo un comando che si chiama “ssmtp”, è semplicemente un programma, che configurato a dovere, ci permette di utilizzare un nostro indirizzo email per mandare delle mail.

Procediamo con l'installazione, esso si trova praticamente in tutti i repository, per Ubuntu ad esempio diamo il seguente comando:

 

sudo apt-get install ssmtp


Per Arch Linux diamo questo:

sudo pacman -S ssmtp


Insomma l'installazione è davvero banale. Passiamo ora alla configurazione del programma.

CONFIGURAZIONE
Per configurarlo, dobbiamo andare a editare il file /etc/ssmtp/ssmtp.conf

Come prima cosa dobbiamo specificare con quale indirizzo email invieremo i nostri messaggi, e ogni indirizzo sarà associato ad un account. Apriamo quindi il file:

 

sudo nano /etc/ssmtp/ssmtp.conf


vedremo la scritta root=postmaster, possiamo togliere postmaster, e associare un indirizzo email all'utente root, e aggiungere, nella riga successiva, un altro utente con un suo indirizzo email, ad esempio:

 

daniele=mio_indirizzo@email.it


Ora andiamo a impostare il server smtp che verrà utilizzato per inviare le email. Ad esempio, nel mio caso, ho utilizzato un indirizzo email di Yahoo, quindi ho impostato il suo server smtp in questo modo:

 

mailhub=[smtp.mail.yahoo.com]:587


Dove 587 è la porta utilizzata dal server.
La mail di Yahoo, come anche Google, utilizzano il TLS e l'autenticazione, quindi per far funzionare tutto correttamente dobbiamo aggiungere anche le seguenti righe:

 

UseSTARTTLS=YES
UseTLS=YES
AuthMethod=LOGIN
#Per l'autenticazione
AuthUser=mio_indirizzo@email.it
AuthPass=password_email


Ora salviamo il file di configurazione chiudendolo con CTRL + X, e modifichiamo il seguente file:

sudo nano /etc/ssmtp/revaliases


In questo file aggiungiamo, per ogni utente, l'indirizzo email che utilizza con il rispettivo server smtp e la sua porta, ad esempio:

 

daniele:mio_indirizzo@email.it:server_smtp:porta


Anche qui chiudiamo con CTRL + X e salviamo.

La configurazione è quasi terminata, se provassimo ora a inviare una email con il comando ssmtp, non funzionerebbe in quanto dobbiamo dare i permessi anche agli altri utenti, oltre che a root, per leggere il file.

Cambiamo il gruppo dei file di configurazione in questo modo:

 

sudo chown root:mail /etc/ssmtp/*


e aggiungiamo l'utente che vogliamo utilizzare per inviare le email al gruppo mail, ad esempio:

sudo adduser -a daniele mail


Ora l'utente daniele ha i permessi per poter leggere i file, ma siccome nel file di configurazione è possibile che ci sia scritta la password per la mail, ci conviene rendere leggibile il file solamente agli utenti che sono nel gruppo mail oltre che all'utente root. Quindi diamo questo ultimo comando:

 

sudo chmod 640 /etc/ssmtp/*


Dove con il numero 6 diamo i permessi di lettura e scrittura all'utente root, con 4 diamo i permessi di lettura agli utenti del gruppo mail e infine con 0 neghiamo i permessi di lettura e scrittura a tutti gli altri utenti. Per saperne di più sul comando chmod potete andare a leggere questo nostro post.

Ora non ci resta che testare il comando.

Scriviamo:

 

ssmtp email@destinatario.com


Una volta cliccato invio, il programma attenderà che scriviamo le intestazioni della mail e il testo, come nel seguente esempio:

 

To:email@destinatario.com
From:nostra@mail.com
Subject:Oggetto della mail
Testo della mail


Una volta terminato di scrivere il testo clicchiamo CTRL + D, e il programma si chiuderà inviando la email.

In alternativa possiamo scrivere dentro un file di testo la mail, con l'intestazione e “darla in pasto” a ssmtp:

 

ssmtp email@destinatario.com < email_da_inviare.txt


CONCLUSIONI
Ora sapete come mandare le email dal vostro terminale, non vi resta che inserire questo comodissimo programma all'interno dei vostri script ;).

 

FONTI:
- Immagini Joel Garia;

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento