Far mandare a Postfix le mail a Dovecot

In un capito precedente ci siamo assicurati che Postfix sappia quali mail è autorizzato a ricevere. Ora cosa ne facciamo di queste mail? Devono essere salvate sul disco per i nostri utenti. Potremmo lasciare a Postfix gestire la cosa usando il suo MDA (mail delivery agent) integrato chiamato “virtual”. Tuttavia a confronto con le capacità che Dovecot fornisce tipo filtri sieve a livello server e le quote disco, l’MDA di Postfix è abbastanza elementare. Siccome usiamo comunque Dovecot per fornire il servizio IMAP (e a scelta POP3), usiamo il suo MDA.

Come facciamo a far trasferire le mail da Postfix a Dovecot? Generalmente ci sono due modi per stabilire questo collegamento.

  • Usare il processo dovecot-lda (local delivery agent). Può processare una mail alla volta. E lancia un nuovo processo per ogni mail. Questo è stato per lungo tempo il modo predefinito. Ma come potete immaginare non scala molto bene.
  • L’altra opzione è usare LMTP (local mail transport protocol) che è stato pensato per questo scopo. Può gestire destinatari multipli allo stesso tempo ed ha un processo attivo permanentemente che fornisce prestazioni migliori rispetto a LDA. In breve LMTP è una variante di SMTP con meno funzionalità. E’ fatto apposta per la comunicazione email tra due componenti che si fidano a vicenda.

L’avete già indovinato – sceglieremo la seconda opzione. Il pacchetto dovecot-lmtpd dovrebbe essere già installato nel vostro sistema. Prima di tutto dobbiamo…

Dire a Dovecot dove ascoltare per le connessioni LMTP da Postfix

Editiamo il file di configurazione di Dovecot che si occupa del demone LMTP – si trova in /etc/dovecot/conf.d/10-master.conf. Modifichiamo la sezione “service lmtp” come segue:

service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}

Questo fa creare al demone lmtp di Dovecot un socket UNIX in /var/spool/postfix/private/dovecot-lmtp. Così come nella sezione Configurare Dovecot, gli facciamo mettere un socket nella cartella chroot /var/spool/postfix perché Postfix è confinato in questa cartella e non può accedere niente al di fuori. Dal punto di vista di Postfix il socket si trova in “/private/dovecot-lmtp”.

Riavviamo Dovecot…

service dovecot restart

(Questo frammento di configurazione è stato preso dal wiki di Dovecot.)

Adesso possiamo…

Dire a Postfix di consegnare le mail a Dovecot usando LMTP

Questo è facile. L’opzione “virtual_transport” in Postfix definisce il servizio da usare per consegnare le mail al sistema locale. Dovecot ha creato il file socket ed è in ascolto per le connessioni LMTP in ingresso. Dobbiamo solo dire a Postfix di mandare le mail lì:

postconf virtual_transport=lmtp:unix:private/dovecot-lmtp

La sintassi sembra assurda? In realtà è semplice. Abbiamo detto a Postfix di usare il protocollo LMTP. E che vogliamo usare un socket UNIX nello stesso sistema (invece di una connessione TCP, per esempio). E che il file socket si trova in /var/spool/postfix/private/dovecot-lmtp.

(Trovate maggiori informazioni su questo argomento nella configurazione di Dovecot per l’integrazione con Postfix.)

Abilitare regole mail lato server

Una delle funzionalità di Dovecot che preferisco sono le regole per la posta in arrivo processate sul server. Potete ordinare le mail delle vostre mailing list in cartelle specifiche. Potete rifiutare certi mittenti. O potete settare risposte automatiche “fuori ufficio”. Non serve lanciare un client mail – è tutto automatico, funziona anche quando i vostri utenti mail non sono connessi.

Lo standard open source (RFC 5228) per queste regole è chiamato Sieve. In parole povere Sieve è un modo per gestire le regole mail lato server. Una regola consta di condizioni e azioni. Per esempio se l’indirizzo del mittente corrisponde a “steve@example.org” potremmo dire a Dovecot di spostare queste mail nella cartella “steve” automaticamente. Queste regole sono salvate nel server Dovecot ed eseguite automaticamente. Che vi connettiate dallo smartphone, dal portatile o che usiate la webmail – le regole funzionano sempre e non richiedono ulteriori configurazioni lato client.

Siccome usiamo LMTP, dobbiamo dire al servizio lmtp che vogliamo usare il plugin “sieve” di Dovecot. Editiamo il file /etc/dovecot/conf.d/20-lmtp.conf e dentro la sezione “protocol lmtp” cambiamo la linea “mail_plugins” in:

mail_plugins = $mail_plugins sieve

Riavviamo Dovecot e siamo a posto:

service dovecot restart

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.