diff --git a/HowtoDovecot.md b/HowtoDovecot.md
index 808bad81..bd80f2a2 100644
--- a/HowtoDovecot.md
+++ b/HowtoDovecot.md
@@ -5,59 +5,122 @@ title: Howto Dovecot
* Documentation :
-[Dovecot](https://www.dovecot.org/) est un puissant serveur POP et IMAP et
-écrit en ayant comme but la sécurité. Les autres objectifs sont la légèreté et
-la rapidité ainsi que la facilité à le mettre en place ; la configuration de
-base, après installation, fournit un serveur POP/IMAP fonctionnel.
+[Dovecot](https://www.dovecot.org/) est un serveur permettant l'accès à des emails avec les protocoles [POP](https://fr.wikipedia.org/wiki/Post_Office_Protocol) et [IMAP](https://fr.wikipedia.org/wiki/Internet_Message_Access_Protocol). Il possède toutes les fonctionnalités indispensables pour nous : la couche [SSL/TLS](HowtoSSL) pour sécuriser les échanges réseau, l'intégration avec [Postfix](HowtoPostfix), la gestion de l'authentification avec [LDAP](HowtoLDAP), le support du format de stockage [Maildir](https://fr.wikipedia.org/wiki/Maildir) et les filtres [Sieve](https://fr.wikipedia.org/wiki/Sieve). Nous aimons sa légèreté et sa rapidité, nous l'avons définitivement adoptés sur nos serveurs de messagerie en remplacement de [Courier POP/IMAP](http://www.courier-mta.org/).
+
## Installation
~~~
# apt install dovecot-pop3d dovecot-imapd dovecot-sieve dovecot-ldap dovecot-managesieved
+
+# dovecot --version
+2.2.27 (c0f36b0)
+
+# systemctl status dovecot
+● dovecot.service - Dovecot IMAP/POP3 email server
+ Loaded: loaded (/lib/systemd/system/dovecot.service; enabled; vendor preset: enabled)
+ Active: active (running) since Wed 2017-10-11 02:37:57 CEST; 2 days ago
+ Docs: man:dovecot(1)
+ http://wiki2.dovecot.org/
+ Main PID: 10102 (dovecot)
+ Tasks: 6 (limit: 4915)
+ CGroup: /system.slice/dovecot.service
+ ├─10102 /usr/sbin/dovecot
+ ├─10111 dovecot/anvil
+ ├─10112 dovecot/log
+ ├─13327 dovecot/config
+ ├─13329 dovecot/auth
+ └─20212 dovecot/auth -w
~~~
-`dovecot-ldap` est à installer si l'authentification se fait sur un annuaire
-LDAP mais il est également possible d'utiliser une base MySQL ou PostgreSQL,
-avec le paquet adapté en conséquence.
+> * Note* : le paquet `dovecot-ldap` est utile uniquement pour gérer l'authentification avec un annuaire [LDAP](HowtoLDAP). Il est également possible de gérer l'authentification avec une base de données SQL, il faudra alors installer le paquet `dovecot-mysql` ou `dovecot-pgsql`.
+
## Configuration
-La configuration de Dovecot se trouve dans le répertoire `/etc/dovecot`. Le
-fichier principal est `dovecot.conf` mais la configuration se fait dans des
-fichiers séparés dans `/etc/dovecot/conf.d/`.
-
-Les paramètres globaux se définissent notamment dans `10-mail.conf`. Dans le
-cas d'un compte Unix unique pour tous les comptes :
+Fichiers de configuration :
~~~
-mail_location = maildir:/home/vmail/%d/%n
-
-mail_uid = 5000
-mail_gid = 5000
+/etc/dovecot/
+├── dovecot.conf
+├── conf.d/
+│ ├── 10-auth.conf
+│ ├── 10-director.conf
+│ ├── 10-logging.conf
+│ ├── 10-mail.conf
+│ ├── 10-master.conf
+│ ├── 10-ssl.conf
+│ ├── 10-tcpwrapper.conf
+│ ├── 15-lda.conf
+│ ├── 15-mailboxes.conf
+│ ├── 20-imap.conf
+│ ├── 20-managesieve.conf
+│ ├── 20-pop3.conf
+│ ├── 90-acl.conf
+│ ├── 90-plugin.conf
+│ ├── 90-quota.conf
+│ ├── 90-sieve.conf
+│ ├── 90-sieve-extprograms.conf
+│ ├── auth-checkpassword.conf.ext
+│ ├── auth-deny.conf.ext
+│ ├── auth-dict.conf.ext
+│ ├── auth-ldap.conf.ext
+│ ├── auth-master.conf.ext
+│ ├── auth-passwdfile.conf.ext
+│ ├── auth-sql.conf.ext
+│ ├── auth-static.conf.ext
+│ ├── auth-system.conf.ext
+│ ├── auth-vpopmail.conf.ext
+│ └── z-evolinux-defaults.conf
+├── dovecot-dict-auth.conf.ext
+├── dovecot-dict-sql.conf.ext
+├── dovecot-ldap.conf.ext
+├── dovecot-sql.conf.ext
+└── private/
~~~
-Pour utiliser LDAP comme backend d'authentification, ajouter ceci dans `10-auth.conf` :
+La configuration se trouve dans le fichier `/etc/dovecot/dovecot.conf` qui inclut de nombreux fichiers séparés dans `/etc/dovecot/conf.d/*.conf`.
+
+Le fichier `/etc/dovecot/conf.d/z-evolinux-defaults.conf` contient notre configuration de base :
~~~
+# Autorise les mécanismes PLAIN/LOGIN même sans SSL/TLS
+disable_plaintext_auth = no
+auth_mechanisms = plain login
+
+# Authentification LDAP + intégration avec Postfix pour l'auth SMTP
!include auth-ldap.conf.ext
service auth {
- unix_listener auth-userdb {
- mode = 0600
- user = vmail
- group = vmail
- }
+ unix_listener auth-userdb {
+ mode = 0600
+ user = vmail
+ group = vmail
+ }
+ unix_listener /var/spool/postfix/private/auth-client {
+ mode = 0666
+ user = postfix
+ group = postfix
+ }
+}
+
+# Stockage des emails dans /home/mail avec UID/GID 5000/5000
+mail_location = maildir:/home/vmail/%d/%n
+mail_uid = 5000
+mail_gid = 5000
+
+# Activation Sieve
+protocol lda {
+ mail_plugins = sieve
}
~~~
-Et commenter la ligne suivante si on utilise pas du tout l'authentification via
-PAM (important autrement PAM introduit un lag lors de l'authentification) :
+Il est également important de commenter la ligne suivante si on utilise pas du tout l'authentification via PAM car cela évite d'avoir plusieurs secondes de lag lors de l'authentification :
~~~
#!include auth-system.conf.ext
~~~
-Les paramètres de connexion à LDAP ainsi que la correspondance des champs
-doivent être indiqués dans le fichier `/etc/dovecot/dovecot-ldap.conf.ext` :
+Les paramètres de connexion à LDAP ainsi que la correspondance des champs doivent être indiqués dans le fichier `/etc/dovecot/dovecot-ldap.conf.ext` :
~~~
hosts = 127.0.0.1
@@ -71,13 +134,8 @@ pass_attrs = uid=user,userPassword=password
### Authentification SMTP sur Dovecot
-Il est possible de déléguer l'authentification SMTP de Postfix à Dovecot, ce
-qui est pratique pour ne pas définir à 2 endroits différents les paramètres du
-backend d'authentification utilisé. Dans Dovecot, il s'agit de faire écouter
-Dovecot sur un socket Unix, sur lequel on pourra récupérer la liste des comptes
-et tester l'authentification.
-
-Dans le fichier `10-master.conf`, décommenter/adapter les lignes suivantes :
+On conseille de déléguer l'authentification SMTP à Dovecot, ce qui est pratique pour ne pas définir à deux endroits différents les paramètres du
+backend d'authentification utilisé. Cela consiste à faire écouter Dovecot sur une socket Unix (comme utilisé dans notre notre configuration de base) :
~~~
service auth {
@@ -92,31 +150,64 @@ service auth {
}
~~~
-Puis indiquer le chemin vers le socket dans la configuration de Postfix, relatif à son chroot :
+puis indiquer le chemin vers la socket dans la configuration de Postfix :
~~~
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth-client
~~~
-### Configuration TLS
+### Configuration SSL/TLS
-La configuration se fait dans le fichier `10-ssl.conf` :
+Il est fortement recommandé d'activer la couche [SSL/TLS](HowtoSSL).
+Cela se fait ainsi :
~~~
-ssl = required
+ssl = yes
ssl_cert = *Note* : la directive `ssl_cert` doit inclure le certificat du domaine ainsi que tous ceux de sa chaîne de certification.
-La directive `ssl_cert` doit inclure le certificat du domaine ainsi que tous ceux de sa chaine de certification.
+À noter que si l'on veut forcer toutes les connexions POP/IMAP à utiliser SSL/TLS (sauf les connexions depuis *localhost*) , on utilise :
-### Créer des boîtes IMAP automatiquement
+~~~
+ssl = required
+~~~
-Voir
+### Livraison avec Dovecot LDA
+
+Dovecot fournit un agent de livraison (LDA) nommé `dovecot-lda` via la commande `deliver`.
+Il est notamment important de l'utiliser pour pouvoir utiliser les filtres Sieve.
+
+Avec Postfix, on ajoutera la ligne suivante dans le fichier `/etc/postfix/master.cf` :
+
+~~~
+dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -a ${recipient} -d ${user}@${nexthop}
+~~~
+
+et dans le fichier `/etc/postfix/main.cf` :
+
+~~~
+virtual_transport = dovecot
+dovecot_destination_recipient_limit = 1
+~~~
+
+> *Note* : cela suppose que tous les comptes sont gérés par un unique compte Unix _vmail_.
+
+Il également possible d'utiliser le démon *dovecot-lmtp* via le package `dovecot-lmtp`.
+
+
+### Mailboxes Sent, Trash, Drafts, Junk
+
+
+
+On peut créer automatiquement des sous-boîtes pour les clients IMAP.
+Les noms sont à peu près normalisés dans la [RFC 6154](https://tools.ietf.org/html/rfc6154).
+
+Voici comment créer automatiquement Sent, Trash, Drafts et Junk :
~~~
namespace inbox {
@@ -141,48 +232,16 @@ namespace inbox {
}
~~~
-## Utiliser Dovecot comme LDA
-Dovecot fournit un agent de livraison (LDA) nommé `dovecot-lda` via la commande
-`deliver`.
+## Sieve
-Note : il est également possible d'utiliser le démon `dovecot-lmtp` (paquet _dovecot-lmtp_).
+Sieve est un langage permettant d'écrire des règles de tri d'emails, du même type que [procmail](https://fr.wikipedia.org/wiki/Procmail).
+Sieve est normalisé via la [RFC 5228](https://tools.ietf.org/html/rfc5228) et plusieurs clients email le supporte : *Mozilla Thundebird* via une [extension](http://sieve.mozdev.org/), [Roundcube](HowtoMail/Roundcube), [Ingo](https://www.horde.org/apps/ingo) etc.
-Ajouter la ligne suivante dans le fichier `/etc/postfix/master.cf` :
-
-~~~
-dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}
-~~~
-
-Note : cela suppose que tous les comptes de courriels sont gérés par un unique compte unix _vmail_.
-
-Puis dans `/etc/postfix/main.cf`, ajouter :
-
-~~~
-virtual_transport = dovecot
-dovecot_destination_recipient_limit = 1
-~~~
-
-### Support du + dans les adresses
-
-Il faut modifier les options de `deliver` dans le fichier `master.cf` de Postfix ainsi :
-
-~~~
-- flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}
-+ flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -a ${recipient} -d ${user}@${nexthop}
-~~~
-
-### Gestion de Sieve
-
-Sieve est un langage permettant d'écrire des règles de tri de courriel, du même
-type que se que `procmail` offre. Il a cependant l'avantage d'être normalisé
-dans le RFC 5228 et donc supporté par plusieurs clients.
-
-Pour utiliser sieve, il faut l'ajouter à la directive `mail_plugins` dans le fichier `15-lda.conf` :
+Pour activer Sieve, il faut utiliser Dovecot LDA et ajuster la directive *mail_plugins* (comme utilisé dans notre notre configuration de base) :
~~~
protocol lda {
- # Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = sieve
}
~~~