Si votre distribution propose dovecot, installez-le avec votre gestionnaire de paquetages. Vérifiez s'il supporte postgreSQL. Je l'ai personnellement recompilé de cette manière:
./configure --with-pop3d --with-pgsql --with-gnu-ld make su make installLes fichiers de configuration sont situés sous /usr/local/etc/ et s'appellent dovecot*.conf
Le fichier principal est très bien commenté. Attention, dans mon
cas (recompilation) la plupart des chemins de recherche des
binaires contenus dans le fichier sont faux. Par défaut,
le fichier de configuration va chercher les binaires sous
/usr/libexec. Dans mon cas, ils sont sous /usr/local/libexec.
Assurez vous
que les chemins correspondent. Je vais m'intéresser dans
ce chapitre
uniquement à l'aspect POP et IMAP concernant postgreSQL.
Fichier /usr/local/etc/dovecot.conf:
(...) # User database specifies where mails are located and what user/group IDs # own them. auth_userdb = pgsql /usr/local/etc/dovecot-pgsql-user.conf # Password database specifies only the passwords for users. # http://wiki.dovecot.org/Authentication auth_passdb = pgsql /usr/local/etc/dovecot-pgsql-pass.conf (...)
connect = host=127.0.0.1 dbname=vmail user=lecteur password=lire user_query = SELECT '/var/spool/vhosts/'||nom_domaine||'/'||nom_boite AS mail,5000 AS uid, 5000 AS gid FROM boites WHERE email = '%u'
connect = host=127.0.0.1 dbname=vmail user=lecteur password=lire default_pass_scheme = PLAIN password_query = SELECT pw AS password FROM boites WHERE email='%u'
Lancez dovecot. Ajustez le niveau de log jusqu'à obtenir un niveau de verbosité suffisant. Il est possible d'utiliser /dev/stderr comme sortie de logs. Voir le fichier de configuration de dovecot et sa documentation associée.
Dans le chapitre précédent, nous avons envoyé un mail à l'utilisateur kevin@boum.org. Le mot de passe associé dans la base était le crypt de 'secret'. Vérifions le fonctionnement:
kevin@zipslack:~$ telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK dovecot ready. user kevin@boum.org +OK pass secret +OK Logged in. list +OK 1 messages: 1 428 . quit +OK Logging out. Connection closed by foreign host.Dovecot nous autorise bien a venir chercher le courrier
kevin@zipslack:~$ telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK dovecot ready. user boum@boum.org +OK pass boum +OK Logged in. list +OK 1 messages: 1 507 . quit +OK Logging out. Connection closed by foreign host. kevin@zipslack:~$dovecot a lu dans la base de données le mot de passe. Il n'a pas reconnu de cryptage (le pw ne commence pas par $1) et retombe en authentification par défaut, c'est à dire PLAINTEXT.