Indice dei contenuti
Se siete capitati su questo articolo vuol dire che avete bisogno di inviare e-mail dal vostro server Linux e state cercando un'alternativa più semplice da configurare rispetto ai classici server di posta veri e propri Sendmail e Postfix. Si tratta di un'esigenza piuttosto comune, tipica di chi amministra siti e servizi in PHP e ha quindi bisogno di poter impostare il valore della proprietà sendmail_path nel file php.ini.
L'alternativa in questione si chiama sSMTP ed è un MTA (Mail Transfer Agent) minimale che può essere utilizzato per inviare la posta in uscita dal proprio sistema Linux verso un qualsiasi mail hub. Vediamo come fare per installarlo e utilizzarlo nel modo corretto con i principali servizi SMTP di invio mail utilizzati in Italia, ovvero GMail e Aruba. I passaggi indicati sono validi per una distribuzione RedHat / CentOS7 / Fedora, ma possono essere utilizzati su qualsiasi altra distribuzione Linux senza alcun problema.
Installazione
La prima cosa da fare è installare il pacchetto ssmtp sul proprio server, eseguendo il seguente comando nel terminale (a seconda del package installer utilizzato dalla vostra versione):
RedHat, CentOS7, Fedora et al.
1 |
yum install ssmtp |
Nel caso in cui si riceva un errore del tipo "Package ssmtp is not available", sarà necessario installare EPEL con la seguente istruzione, sempre da terminale:
1 |
yum --enablerepo=extras install epel-release |
Una volta fatto, sarà possibile installare ssmtp con l'istruzione di cui sopra.
Ubuntu, Debian et al.
1 |
sudo apt-get install ssmtp |
Configurazione
Una volta installato, sSMTP creerà i suoi file di configurazione predefiniti nella cartella /etc/ssmtp/ :
1 2 |
/etc/ssmtp/ssmtp.conf /etc/ssmtp/revaliases |
Il primo file, da configurare obbligatoriamente, dovrà contenere le impostazioni di collegamento al server SMTP di destinazione: il secondo file, opzionale, consente di definire dei veri e propri alias per gli utenti locali del sistema, che - se impostati - andranno a sostituire i parametri relativi al server SMTP indicati nel primo file.
Entrambi i file sono ben commentati e molto semplici da configurare: nei paragrafi successivi presentiamo alcuni esempi relativi alle configurazioni più comuni per l'utilizzo di sSMTP con i provider italiani più noti e diffusi.
GMail
Ecco un esempio di configurazione del file /etc/ssmtp/ssmtp.conf per utilizzare sSMTP con l'account GMail [email protected]:
1 2 3 4 5 6 7 |
root=gmail@gmail.com mailhub=smtp.gmail.com:587 AuthUser=gmail_username AuthPass=gmail_password AuthMethod=LOGIN UseSTARTTLS=YES UseTLS=YES |
Nel caso in cui vogliate compilare anche il file /etc/ssmtp/revaliases , ecco una configurazione di esempio valida per l'utente locale root:
1 |
root:gmail@gmail.com:smtp.gmail.com:587 |
Aruba
Ecco come configurare il file /etc/ssmtp/ssmtp.conf con l'account Aruba di esempio [email protected] per le soluzioni SSL e non-SSL offerte da Aruba:
SSL (porta 465)
1 2 3 4 5 6 |
root=aruba_email@ilmiosito.it mailhub=smtps.aruba.it:465 AuthUser=aruba_email@ilmiosito.it AuthPass=aruba_password AuthMethod=LOGIN UseTLS=YES |
NON-SSL (porta 25)
1 2 3 4 5 6 |
root=aruba_email@ilmiosito.it mailhub=smtp.ilmiosito.it:25 AuthUser=aruba_email@ilmiosito.it AuthPass=aruba_password AuthMethod=LOGIN UseTLS=NO |
Nel caso in cui vogliate compilare anche il file /etc/ssmtp/revaliases , ecco le due alternative SSL e non-SSL per l'utente locale root:
1 |
root:aruba_email@ilmiosito.it:smtps.aruba.it:465 |
1 |
root:aruba_email@ilmiosito.it:smtp.ilmiosito.it:25 |
Yahoo.it
File /etc/ssmtp/ssmtp.conf :
1 2 3 4 5 6 7 |
root=yahoo_email@yahoo.it mailhub=smtp.mail.yahoo.it:587 AuthUser=yahoo_username AuthPass=yahoo_password AuthMethod=LOGIN UseTLS=YES UseSTARTTLS=YES |
File /etc/ssmtp/revaliases :
1 |
root:yahoo_email@yahoo.it:smtp.mail.yahoo.it:587 |
Test di funzionamento
Una volta completato il lavoro è opportuno effettuare un rapido test di funzionamento. Il modo più semplice per assicurarsi che tutto funzioni è eseguire il comando ssmtp in una shell del terminale: a tale scopo è possibile utilizzare la modalità interattiva, scrivendo il messaggio immediatamente prima dell'invio, oppure inviando un messaggio preparato in precedenza. Vediamole entrambe:
Modalità interattiva
1 |
> ssmtp indirizzo@destinatario.it |
Subito dopo aver premuto invio, potrete scrivere il vostro messaggio direttamente nel prompt nel seguente modo:
1 2 3 4 |
To: indirizzo@destinatario.it Subject: test di funzionamento sSMTP ... Funziona! |
Abbiate cura di rispettare la riga vuota tra il Subject e il corpo del messaggio, altrimenti l'invio non funzionerà! Inoltre, tenete presente che il campo To: è puramente indicativo, in quanto il messaggio sarà inviato unicamente al destinatario specificato nella riga di comando in precedenza.
Invio di file e-mail
In alternativa alla modalità interattiva è possibile preparare il proprio messaggio e-mail all'interno di un file, che dovrà poi essere salvato sul vostro sistema. Il file dovrà avere le medesime caratteristiche di quello creato on-the-fly nella modalità interattiva, ovvero:
1 2 3 4 |
To: indirizzo@destinatario.it Subject: test di funzionamento sSMTP ... Funziona! |
Una volta salvato - per ipotesi nel percorso /email/msg.txt - sarà possibile inviarlo con il seguente comando terminal:
1 |
> ssmtp indirizzo@destinatario.it < /email/msg.txt |
Utilizzo con PHP
Nel caso in cui vogliate utilizzare sSMTP per inviare le e-mail con la funzione mail() di PHP, vi basterà aggiungere la seguente riga all'interno del vostro file php.ini:
1 |
sendmail_path = /usr/sbin/ssmtp -t |
E il gioco è fatto!
Link utili
Concludiamo questa guida con un paio di link che saranno sicuramente utili per chiunque volesse approfondire ulteriormente l'argomento:
- https://packages.debian.org/source/sid/ssmtp : repository ufficiale del source package ssmtp.
- http://guide.debianizzati.org/index.php/Ssmtp : guida completa all'uso di ssmtp pubblicata sul sito debianizzati.org.
Per il momento è tutto: felice invio!