Utilizziamo Postfix come relay server per inviare le nostre email con Mandrill.

Ho provato il servizio da circa 8 mesi, trovandomi molto bene. Si riesce a gestire la coda della posta tramite la comoda app del telefono oppure tramite il loro sito web http://mandrilapp.com

Riporto di seguito il documento ufficiale preso dal loro sito per configurare il nostro server Postfix affinchè usi Mandrill come relay server.

Installazione

Prima di tutto è necessario installare i seguenti pacchetti:

  • libsasl2
  • libsasl2-modules
  • postfix-tls
# apt-get install libsasl2-2 libsasl2-modules mailutils ca-certificates

Configurazione

La configurazione è molto semplice e consiste nel modificare il file /etc/postfix/main.cf aggiungendo le seguenti righe:

# Relay su mio ISP
relayhost = [mail.provider.it]
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = # se non inserite opzioni commentare all'inizio

# Relay su GMail - In alternativa al precedente
#relayhost = [smtp.gmail.com]:587
#smtp_sasl_auth_enable = yes
#smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
#smtp_sasl_security_options = noanonymous
#smtp_tls_CAfile = /etc/postfix/cacert.pem
#smtp_use_tls = yes

Le opzioni disponibili sono :

noanonymous	 Don't use mechanisms that permit anonymous authentication. 
noplaintext	 Don't use mechanisms that transmit unencrypted username and password information. 
nodictionary	 Don't use mechanisms that are vulnerable to dictionary attacks. 
forward_secrecy	 Require forward secrecy between sessions (breaking one session does not break earlier sessions). 
mutual_auth	 Use only mechanisms that authenticate both the client and the server to each other.

Creare il file /etc/postfix/sasl_passwd con un contenuto simile a questo:

[mail.provider.it]     username:password

# In caso di Gmail
[smtp.gmail.com]:587    USERNAME@gmail.com:PASSWORD

dove mail.provider.it è lo stesso indicato prima e username e password vanno sostituite con i propri dati di accesso.

Impostare i giusti permessi

# chown root:root /etc/postfix/sasl_passwd && chmod 600 /etc/postfix/sasl_passwd

eseguire poi:

# postmap hash:/etc/postfix/sasl_passwd

Decommentare la riga:

-o smtpd_sasl_auth_enable=yes

nel file /etc/postfix/master.cf .

Validiamo il certificato:

# cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | tee -a /etc/postfix/cacert.pem

L’unica cosa che resta da fare è riavviare Postfix:

# /etc/init.d/postfix reload

e controllare che funzioni verificando il log /var/log/mail.warn.

Relay su Server SMTP multipli

In alcuni casi può esserci la necessità di smistare le mail in uscita su server SMTP di relay diversi. Ad esempio:

  • il server predefinito di relay deve essere smtppredefinito.dominio.it
  • l’utente pippo@secondodominio.it deve spedire attraverso smtp.secondodominio.it
  • tutti gli utenti del dominio terzodominio.it devono spedire attraverso smtp.terzodominio.it

Postfix permette anche questo.
La configurazione è molto semplice e consiste nel modificare il file /etc/postfix/main.cf aggiungendo le seguenti righe:

# Imposto autenticazione su SMTP di relay
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = # se non inserite opzioni commentare all'inizio

# Relay su ISP predefinito
relayhost = [smtppredefinito.dominio.it]:submission

# Server SMTP di relay alternativi
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_dependent_relayhost_maps

Quindi creiamo il file di transport con i nostri SMTPdi relay alternativi:

# nano /etc/postfix/sender_dependent_relayhost_maps

e diamogli il contenuto seguente:

# Utente Pippo
pippo@secondodominio.it   smtp.secondodominio.it

# Dominio Terzodominio
@terzodominio.it   smtp.terzodominio.it

Infine aggiorniamo il file contenente le credenziali di autenticazione verso i server di relay:

# nano /etc/postfix/sasl_passwd
# Relay per utente Pippo
pippo@secondodominio.it              userpippo:password_pippo

# Il relay di default
smtppredefinito.dominio.it     username:password

# Relay per il terzo dominio
smtp.terzodominio.it   user_terzodominio:password_terzodominio

Ricreiamo il database delle password:

# postmap hash:/etc/postfix/sasl_passwd

Ricreiamo il database dei server di relay:

# postmap hash:/etc/postfix/sender_dependent_relayhost_maps

e riavviamo Postfix:

# /etc/init.d/postfix restart

 

Fonte ufficiale: http://help.mandrill.com/entries/23060367-Can-I-configure-Postfix-to-send-through-Mandrill