Mail con Postfix

Postfix è un software della categoria MTA (Mail Transfer Agent) ed MDA (Mail Delivery Agent) molto flessibile e complesso, lo scopo di questo articolo è fornire un riferimento immediato e pratico per configurare postfix in modo che possa inviare mail.

Utilizzeremo come riferimento un server Linux con Centos 6.5. Se Postfix non risultasse già installato basterà eseguire il comando

#yum install postfix

Supponiamo di voler configurare postfix in modo che possa inviare mail dall’account server@example.com con password miapwd su server smtp smtp.example.com:

editiamo il file /etc/postfix/main.cf che contiene la configurazione globale di postfix:

#vi /etc/postfix/main.cf

andando a sostituire la linea:

#relayhost= [mailserver.isp.tld]     con      relayhost= smtp.example.com  

rimuovendo il # che indica il commento. Aggiungiamo quindi, in coda al file, i seguenti parametri:

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options =

smtp_generic_maps = hash:/etc/postfix/generic

che specificano a postfix che è necessaria l’autenticazione sul server,  con password contenuta nel file /etc/postfix/sasl_passwd e che il file /etc/postfix/generic contiene la tabella di sostituzione dei mittenti (campo from) della mail.

Vediamo ora come valorizzare i due file:

Impostiamo l’autenticazione creando il file sasl_passwd e scriviamo i dati relativi al server smtp ed all’account da utilizzare:

#vi  /etc/postfix/sasl_passwd

Quindi inseriamo:

smtp.example.com    server@example.com: miapwd

Salviamo il file e chiudiamo vi. A questo punto creiamo il file .db che postfix utilizzerà per l’autenticazione al server di posta con il comando:

#postmap hash:/etc/postfix/sasl_passwd

Il file sasl_passwd.db viene creato, possiamo anche cancellare il file in chiaro sasl_passwd.

Valorizziamo ora il file generic:

#vi  /etc/postfix/generic

Quindi inseriamo la mappatura degli utenti:

@localdomain                utente@example.com

Salviamo il file e chiudiamo vi. A questo punto creiamo il file .db che postfix utilizzerà per la sostituzione dell’indirizzo mittente:

#postmap hash:/etc/postfix/generic

Il file generic.db viene creato, possiamo anche cancellare il file in chiaro generic.

Per attivare le impostazioni non ci resta che riavviare il servizio postfix con il comando:

#service postfix restart

Testiamo il corretto funzionamento inviando una mail di prova con il comando:

#mail  –s mail di prova indirizzo@mail.com

che invia una mail all’indirizzo indirizzo@mail.com con oggetto “mail di prova”.

Se tutto è andato bene nella casella indirizzo@mail.com ci sarà il nostro messaggio mail di prova, diversamente basterà andare a vedere i log di postfix per capire il problema; digitiamo:

#tail /var/log/maillog

Il comando visualizzerà le ultime 10 righe del file di log, andiamo quindi ad analizzare i valori del campo “from=” e “to=” verificando che quanto contenuto nel campo from sia identico all’indirizzo contenuto nella mappatura specificata nel file /etc/postfix/generic.