Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 8 "jessie"

Introduzione

Ssmtp è un semplice MTA che permette l'invio di email da un computer ad un hub mail (server smtp) senza la necessità di avere un ambiente grafico installato. È estremente leggero, essenziale e non richiede l'esecuzione di servizi permanenti (daemons) in background, tuttavia non permette ne di gestire code ne di ricevere mail, nemmeno quelle locali.
L'invio di mail può essere effettuato sia direttamente tramite l'eseguibile ssmtp che configurando opportunamente il proprio MUA (es. Mutt).

ssmtp ed exim

ssmtp non può coesistere con exim, il MTA predefinito di debian, pertanto installare il primo comporta necessariamente la rimozione del secondo.
Questo fatto può costituire un problema per coloro i quali trovano utile continuare a ricevere in locale le mail di sistema, infatti come già accennato ssmtp non permette in alcun modo la ricezione di email, nemmeno quelle locali, a differenza di exim.
In poche parole, se si ha a che fare con una macchina cui si accede prevalentemente via LAN, allora l'installazione di ssmtp può risultare non ottimale in quanto tutte le mail, anche quelle di sistema, verrebbero dirottate verso un server smtp esterno per poi essere di fatto rispedite indietro all'utente.
In tutti quei casi invece in cui la macchina non appartiene alla propria LAN e si ha bisogno di un sistema molto semplice e leggero per l'invio delle mail (di sistema e non), allora ssmtp risulta essere una soluzione molto valida.

Installazione

ssmtp è disponibile direttamente da repository:

apt-get install ssmtp

Configurazione

I file di configurazione di ssmtp sono due ed entrambi assolutamente minimali.

/etc/ssmtp/ssmtp.conf

Ecco un esempio generico di file di configurazione adatto a servizi gratuiti come gmail, yahoo, ecc. che supportano TLS:

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=nome_account_email@dominio

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
UseTLS=YES
UseSTARTTLS=YES
mailhub=indirizzo_server_smtp:587

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=hostname_della_propria_macchina

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

# Authentication parameters
AuthMethod=LOGIN
AuthUser=nome_account_email@dominio
AuthPass=password_account_mail

Significato dei parametri usati:

  • root definisce l'indirizzo mail a cui saranno inviate tutte le mail di sistema, ovvero quelle generate dagli utenti con UID < 1000
  • UseTLS e UseSTARTTLS devono avere valore YES se si intende usare il protocollo TLS.
  • mailhub specifica l'indirizzo del server smtp, comprensivo di porta, cui spedire le mail (ad esempio smtp.gmail.com:587 nel caso di gmail). È possibile definire più parametri mail hub e quindi specificare diversi server smtp, tuttavia si tenga presente che non è comunque possibile definire più di una coppia di credenziali di accesso.
  • hostname, parametro che definisce il nome host della propria macchina. Normalmente non necessita di essere modificato in quanto generato automaticamente durante l'installazione. Provare a commentarlo in caso di problemi durante l'invio delle email.
  • FromLineOverride permette di modificare il campo from di una mail con un valore arbitrario. Il valore predefinito inserito nelle mail da ssmtp coincide con nome_utente_linux@nome_host. Si sconsiglia caldamente sia di abilitare tale opzione che mantenere il valore predefinito, in quanto entrambi i casi provocano spesso il rifiuto delle email da parte dei server smtp di società come gmail e yahoo. Vedere a tal proposito il file di configurazione /etc/sstmp/revaliases
  • AuthMethod, definisce il metodo di login. Le alternative di solito sono tra i valori LOGIN e PLAIN, tuttavia il primo risulta essere (al momento in cui si scrive) il valore più comune per i servizi come gmail e affini. Non è possibile definire più di una volta questo parametro.
  • AuthUser e AuthPass definiscono banalmente le credenziali necessarie ad autenticarsi presso il (o i) mail hub specificati. Entrambi i parametri possono essere specificati al più una volta.

/etc/sstmp/revaliases

Ecco un esempio generico di file di configurazione adatto a servizi gratuiti come gmail, yahoo, ecc. che supportano TLS:

# sSMTP aliases
# 
# Format:	local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:nome_account_email@dominio:indirizzo_server_smtp:587
nome_utente_linux:nome_account_email_utente@dominio:indirizzo_server_smtp:587

Il formato di ogni riga è come facilmente visibile:

nome_utente_linux : nome_account_email_utente@dominio : indirizzo_server_smtp:587

Per quanto riguarda il primo e il terzo parametro non vi è nulla da aggiungere, mentre per quanto riguarda il secondo si fa notare che tale parametro definisce il mittente (cioè il valore predefinito del campo From) delle email che si spediscono. Tale valore sostituisce quello predefinito di sistema, ma può essere a sua volta sostituito dagli utenti se in /etc/ssmtp/ssmtp.conf è stato impostato FromLineOverride=YES.
Si consiglia sempre di far coincidere l'indirizzo del mittente con quello usato per autenticarsi presso il server smtp (cioè quello specificato dal parametro AuthUser nel file /etc/ssmtp/ssmtp.conf), pena il rischio di verdersi rifiutare l'invio delle mail e anche la chiusura temporanea del suddetto account (es. gmail).

Esempi

gmail.com

/etc/ssmtp/ssmtp.conf

root=nome_account@gmail.com
UseTLS=YES
UseSTARTTLS=YES
mailhub=smtp.gmail.com:587
hostname=nome_host
AuthMethod=LOGIN
AuthUser=nome_account@gmail.com
AuthPass=password_account

/etc/ssmtp/ssmtp.conf

root:nome_account@gmail.com:smtp.gmail.com:587

Note:

  • evitare di specificare come indirizzo mittente un indirizzo diverso da quello usato per autenticarsi presso il server smtp;
  • è probabile che sia necessario abilitare l'uso di applicazioni meno sicure dalla pagina del proprio account gmail (account personale --> app e siti collegati --> consenti app meno sicure).

gmx.com

/etc/ssmtp/ssmtp.conf

root=nome_account@gmx.com
UseTLS=YES
UseSTARTTLS=YES
mailhub=mail.gmx.com:587
hostname=nome_host
AuthMethod=LOGIN
AuthUser=nome_account@gmx.com
AuthPass=password_account

/etc/ssmtp/ssmtp.conf

root:nome_account@gmx.com:mail.gmx.com:587

Note:

  • evitare di specificare come indirizzo mittente un indirizzo diverso da quello usato per autenticarsi presso il server smtp.

yahoo.it

/etc/ssmtp/ssmtp.conf

root=nome_account@yahoo.it
UseTLS=YES
UseSTARTTLS=YES
mailhub=smtp.mail.yahoo.it:587
hostname=nome_host
AuthMethod=LOGIN
AuthUser=nome_account@yahoo.it
AuthPass=password_account

/etc/ssmtp/ssmtp.conf

root:nome_account@yahoo.it:smtp.mail.yahoo.it:587

Nota, evitare di specificare come indirizzo mittente un indirizzo diverso da quello usato per autenticarsi presso il server smtp poiché altrimenti si riceve il seguente messaggio d'errore:

553 From: address not verified;<br/>
"see http://help.yahoo.com/l/us/yahoo/mail/original/manage/sendfrom-07.html"

Approfondimenti

Man pages

$ man ssmtp
$ man ssmtp.conf




Guida scritta da: Wtf 16:03, 11 gen 2016 (CET)   Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized