The Daily Shaarli
Petit script python de déduplication de messages par IMAP. Marque juste les messages comme "deleted". Il y a relativement pas mal d'options, et un no-op (-n) assez explicite, avec lequel on peut tout contrôler avant de lancer définitivement (option -v pour tout avoir).
Perso j'ai utilisé :
./imapdedup.py -s 192.168.1.13 -u john -x -c -m ARN INBOX
Attention à l'ordre, il lit les dossier dans l'ordre, donc d'abord ARN puis INBOX. Donc les messages dupliqués/supprimés seront ceux d'INBOX.
Exemples de sorties :
Message INBOX_1905 is a duplicate of ARN_2642 and would be marked as deleted
If you had not selected the 'dry-run' option,
85 messages would now be marked as 'deleted'.
There are now 4679 messages marked as deleted and 1633 others in INBOX.
La commande de déduplication de dovecot ne fait qu'une partie du travail à la fois (genre 30 mails). J'ai pas trop compris pourquoi, mais un strace montre qu'il regarde /proc/meminfo avant de quitter. Ici quelqu'un d'autre a ce problème.
En regardant vite-fait dans les sources, on trouve :
pool = pool_alloconly_create("deduplicate", 10240);
Est-ce que ce pool est extensible ? Aucune idée. Mais effectivement, si la hash table utilisée pour retenir les références à comparer est limitée à ça, 10ko ça va être juste. Ce n'est qu'une hypothèse.
Perso j'ai bourriné :
for ((i=0; i<500; i++)); do doveadm deduplicate -m -u john mailbox INBOX; done
Dovecot a même une commande pour dédupliquer les messages d'une même boîte aux lettres (un seul dossier) directement. On peut l'utiliser si on a par exemple mis en place une réplication mais que les deux boîtes aux lettres avaient déjà été remplies auparavant.
Si on veut faire confiance à un certificat auto-signé, le mettre dans /usr/local/share/ca-certificates/ et lancer update-ca-certificates. Attention uniquement *.crt est pris en compte.
Réplication avec dovecot : j'ai enfin mis en place chez moi entre une VM et mon serveur @home. J'avais déjà dit ici que ça fonctionnait, voici quelques précisions.
J'ai mis le plus gros de la config (donnée sur la page liée) dans le local.conf, comme ça c'est propre (il n'y a pas de section prédéfinie dans conf.d pour tout).
Ne pas oublie d'activer les plugins dans 10-mail.conf sinon "holol ça sync pas".
Pour la synchro, si on n'a pas envie de jouer avec des clefs SSH, surtout pas en root, le dsync over TCP + TLS semble acceptable (protégé par un mot de passe partagé). Par contre il faut que les certificats soient reconnus (qu'on fasse confiance au CA qui l'a émis). Et bien sûr, le nom de domaine utilisé doit match celui du certificat.
La réplication réplique aussi les règles sieve (au premier resync suivant une modif). Il suffit donc juste d'installer les paquets et d'activer les modules sur la 2e machine pour que ça fonctionne.
Déclenchement d'une synchro : doveadm sync -u john tcps:serveur_en_face:12345
