18
0
Fork 0

Ajout sieve avec rétrocompatibilité vers procmail.

This commit is contained in:
Brice Waegeneire 2022-07-21 16:47:52 +02:00
parent 667fea8627
commit 6257472257
1 changed files with 46 additions and 0 deletions

View File

@ -275,7 +275,53 @@ a1 LOGIN foo password
a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE COMPRESS=DEFLATE] Logged in
~~~
### Sieve rétrocompatible avec procmail
La configuration suivante est utile lorsque l'on veut migrer de procmail à Sieve de manière progressive, pour pouvoir utiliser des script Sieve tout en gardant ses anciens script procmail. Par contre elle n'est pas recommandé lors de la mise en place d'un nouveau service mail car procmail est déprécié depuis des années.
Configuré ainsi Dovecot utilisera procmail en solution de replis si un courriel n'a pas déjà été accepté par un script Sieve et qu'un utilisateur possède un fichier `~/.procmailrc`. Si utilisateur souhaite ne pas du tout utiliser Sieve, il peut alors mettre `"|/local/bin/procmail -f-"` dans son `"|/local/bin/procmail -f-"`, ce qui contournera la logique précédente.
On commence par créer un script qui execute procmail quand l'utilisateur possède un fichier de configuration dans son compte :
~~~ sh
mkdir --parents --mode=755 /usr/local/lib/dovecot
cat > /usr/local/lib/dovecot/sieve-pipe/procmail <<EOF
#!/bin/sh
if [ ! -f "\$HOME/.procmailrc" ]; then
exit 1
fi
exec /usr/bin/procmail
EOF
chmod 755 /usr/local/lib/dovecot/sieve-pipe/procmail
~~~
Pui on créé une règle Seive qui passe les courriels via une pipe UNIX au script procmail précedement créé :
~~~ sh
mkdir --parents --mode=755 /var/lib/dovecot/sieve/after.d/
cat > /var/lib/dovecot/sieve/after.d/procmail <<EOF
# If a message hasn't been handled by the user sieve's config
# we fallback to its procmail if he has configured it.
require "vnd.dovecot.pipe";
pipe "procmail";
EOF
chmod 644 /var/lib/dovecot/sieve/after.d/procmail
~~~
Finallement on configure Dovecot pour qu'il utilise notre règle Seive quand un courriel n'a pas déjà été accepté par une règle Sieve système ou utilisateur :
~~~
plugin {
sieve_after = /var/lib/dovecot/sieve/after.d/procmail
sieve_extensions = +vnd.dovecot.pipe
sieve_plugins = sieve_extprograms
sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve-pipe
}
~~~
Note : Il est très probable, lors de ce genre de migration, que votre ancienne configuration Postfix (et Dovecot) ai besoin d'être ajusté pour que Postfix utilise Dovecot comme MDA local plutot que procmail.
## Sieve