Vider le répertoire Trash et supprimer le Spam régulièrement sont des choses qu’il faut effectuer de temps en temps sur un serveur de messagerie pour ne pas voir son espace disque s’écrouler inutilement.
Dovecot sait bien entendu faire ça grace à l’option expunge
de la commande doveadm
. Par exemple, la commande suivante va supprimer les fichiers modifiés de plus de 30 jours dans le répretoire Junk de l’utilisateur toto@titi.org :
doveadm expunge -u toto@titi.org mailbox Junk savedbefore 30d
Il s’agit bien des fichiers dont la dernière date de modification est plus vieille que le nombre de jours choisi, ainsi si vous avez un vieux fichier de plus de 60 jours en Inbox et que vous le placez dans le Junk, celui-ci ne sera supprimé que dans 60 jours car il a été « nouvellement » mis dans Junk.
Une commande plus générale pour faire le ménage sur un serveur Dovecot est la suivante :
doveadm expunge -A mailbox Junk savedbefore 60d
Celle-ci faire le même travail mais pour toutes les boîtes aux lettres. A noter que toute commande de type doveadm -A utilise la requête d’itération iterate_query, celle-ci doit retourner username et domain de chaques utilisateurs. Cette requête peut varier suivant votre installation de DOvecot, pour information, voici la mienne :
iterate_query = SELECT email AS username, domain FROM MX_users
Ceci peut-etre placé dans un script qui sera exécuté de temps en temps par le cron.
#!/bin/bash
DOVEADM=/usr/bin/doveadm
$DOVEADM expunge -A mailbox Trash savedbefore 30d
$DOVEADM expunge -A mailbox Junk savedbefore 30d
Dans mon cas, sous /etc/cron.d/mailboxes_expunge
10 22 * * * root /etc/dovecot/mailboxes_expunge.sh