En la entrada anterior añadí un enrutador a Exim4 para buscar las cuentas locales en un directorio LDAP. Ahora voy a integrar el servidor Dovecot con Exim4 para que gestione el despacho de correo a dichas cuentas.
De Dovecot ya hablé en esta otra entrada para utilizar el mismo directorio LDAP así que pasamos directamente a la configuración de ambos.
En el wiki de Dovecot recomiendan crear un transporte específico para el programa. Se puede utilizar el que trae Exim4 en Debian para los buzones en formato maildir pero me parece mejor aproximación dedicarle atención directamente.
Transporte dedicado
# # Despacho de correo hacia buzones # bajo Dovecot # dovecot_transport: driver = appendfile user = vmail group = vmail mode = 0700 directory = /srv/mail/${lc:$local_part}/ maildir_format = true mode_fail_narrower = false envelope_to_add = true return_path_add = true
Para que ésto funcione el programa exim debe ser capaz de leer el directorio raíz de los buzones /srv/mail
y dado que éste está asignado al grupo vmail
he pensado que es preferible que el usuario Debian-exim
pertenezca al mismo.
$ sudo adduser Debian-exim vmail Añadiendo al usuario `Debian-exim' al grupo `vmail' ... Añadiendo al usuario Debian-exim al grupo vmail Hecho.
Desviando correo a Dovecot
En lugar de cambiar el transporte de mensajes en el enrutador indicado he preferido hacerlo global y he añadido lo siguiente al archivo /etc/exim4/conf.d/main/00_local_macros
.
# Despacho de correo LOCAL_DELIVERY = dovecot_transport
Probando el enrutado
Similar a cualquier otra prueba con la configuración de exim:
# cd /etc/exim4 # update-exim4.conf -v -o test.conf # exim4 -bV -C test.conf # exim4 -bt -d+transport -C /etc/exim4/test.conf victor@empresa.net ... routed by ldap_users router envelope to: victor@empresa.net transport: dovecot_transport victor@empresa.net router = ldap_users, transport = dovecot_transport search_tidyup called unbind LDAP connection to localhost:389 >>>>>>>>>>>>>>>> Exim pid=27195 terminating with rc=0 >>>>>>>>>>>>>>>> #