Instalar dovecot con Qmail

Dovecot es un servidor IMAP y POP ligero y rápido. Vamos a ver como instalarlo en un servidor qmail con vpopmail.

Desde site oficial de dovecot se puede descargar el paquete, una vez descomprimido lo configuramos según el siguiente configure:

./configure --disable-ipv6 --with-mysql \
      --with-sql=yes --with-sql-drivers

Al finalizar el configure tenemos que asegurarnos que ha detectado el vpopmail en las lineas de “user database modules” y “password lookup modules“:

Install prefix …………………. : /usr/local
File offsets …………………… : 64bit
I/O loop method ………………… : epoll
File change notification method ….. : inotify
Building with SSL support ……….. : yes (OpenSSL)
Building with IPv6 support ………. : no
Building with pop3 server ……….. : yes
Building with mail delivery agent .. : yes
Building with GSSAPI support …….. : no
Building with user database modules . : static prefetch passwd passwd-file sql vpopmail nss
Building with password lookup modules : passwd passwd-file shadow checkpassword sql vpopmail
Building with SQL drivers …………: mysql

Continuamos compilando e instalando:

make && make install

Añadimos un usuario para el daemon:

useradd dovecot

A continuación passamos a configurar el daemon con los siguientes ficheros:

  • /usr/local/etc/dovecot.conf:
    mail_location = maildir:/home/vpopmail/domains/%d/%n/Maildir
    
    ssl_disable=yes
    disable_plaintext_auth=no
    
    verbose_proctitle = yes
    first_valid_uid = 89
    last_valid_uid = 89
    
    protocol imap {
    	listen = *:143
    }
    
    auth default {
    
    	passdb vpopmail {
    	}
    
    	userdb vpopmail {
    	}
    }
  • /usr/local/etc/dovecot-sql.conf
    • No aparecen los correos

      dovecot: IMAP(ejemplo@systemsadmins.es): mkdir(/home/systemsadmins.es/ejemplo/Maildir/cur) failed: Permission denied

      Esto puede ser debido a que dovecot lo busca en un path incorrecto. Comprueba que /home/systemsadmins.es/ejemplo/Maildir/cur exista, y si no es así, modifica el parametro mail_location según corresponda.

    • Fallo de autenticación

      dovecot: auth(default): vmysql: sql error[3]: MySQL server has gone away

      Este error aparece quando se ha reiniciado el mysql. Debes reiniciar el dovecot

  • driver=mysql
    connect = host=/tmp/mysql.sock user=vpopmail password=vpopmailpassword dbname=vpopmail
    default_pass_scheme = PLAIN
    password_query = SELECT CONCAT(pw_name, '@', pw_domain) AS user, pw_clear_passwd AS password FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'
    user_query = SELECT pw_dir as home, 64020 AS uid, 64020 AS gid FROM vpopmail WHERE pw_name = '%n' AND pw_domain = '%d'

    Para iniciar el daemon sólo hace falta ejecutar «dovecot» sin parámetros, peró recomendamos su uso combinado con las daemontools. Su fichero runsupervise sería: para el

    #!/bin/bash
    exec /usr/local/sbin/dovecot -F

    Problemas freqüentes de dovecot

    Algunos de sus problemas freqüentes són:

No aparecen los correos

dovecot: IMAP(ejemplo@systemsadmins.es): mkdir(/home/systemsadmins.es/ejemplo/Maildir/cur) failed: Permission denied

Esto puede ser debido a que dovecot lo busca en un path incorrecto. Comprueba que /home/systemsadmins.es/ejemplo/Maildir/cur exista, y si no es así, modifica el parametro mail_location según corresponda.

Fallo de autenticación

dovecot: auth(default): vmysql: sql error[3]: MySQL server has gone away

Este error aparece quando se ha reiniciado el mysql. Debes reiniciar el dovecot

Fuente: http://systemadmin.es