Purger les mails sous cyrus

Publié le 26 mai 2011 par Pydubreucq

Voici une méthode qui devrait vous simplifier la vie, ou tout cas la mienne oui.

Voici comment purger les mails sous Cyrus en fonction de certains critères, comme l’age, le poids…

Pour cela il suffit d’utiliser la commande cyrus ipurge

Voici comment supprimer les mails plus vieux qu’un date donnée.

[root@srv imap]# su - cyrus -c "/usr/lib/cyrus-imapd/ipurge -d510 -f user/pydubreucq*"
Working on user/pydubreucq...
total messages          9
total bytes          35144
Deleted messages         1
Deleted bytes          4426
Remaining messages       8
Remaining bytes          30718
Working on user/pydubreucq/Brouillons...
total messages          0
total bytes          0
Deleted messages         0
Deleted bytes          0
Remaining messages       0
Remaining bytes          0
Working on user/pydubreucq/Courrier ind&AOk-sirable...
total messages          0
total bytes          0
Deleted messages         0
Deleted bytes          0
Remaining messages       0
Remaining bytes          0
Working on user/pydubreucq/El&AOk-ments envoy&AOk-s...
total messages          4
total bytes          9728
Deleted messages         4
Deleted bytes          9728
Remaining messages       0
Remaining bytes          0
Working on user/pydubreucq/El&AOk-ments supprim&AOk-s...
total messages          8
total bytes          12051
Deleted messages         8
Deleted bytes          12051
Remaining messages       0
Remaining bytes          0
Working on user/pydubreucq/INBOX...
total messages          7
total bytes          32574
Deleted messages         7
Deleted bytes          32574
Remaining messages       0
Remaining bytes          0
Working on user/pydubreucq/Priv&AOk-...
total messages          0
total bytes          0
Deleted messages         0
Deleted bytes          0
Remaining messages       0
Remaining bytes          0

Explication de la commande :

su - cyrus -c "/usr/lib/cyrus-imapd/ipurge -d510 -f user/pydubreucq*"
|     1       |            2              |  3  | 4 |           5            |

1 = Cela permet de lancer la commande qui suit avec l’utilisateur cyrus

2 = La commande ipurge avec le chemin complet

3 = -d pour days soit 510 jours avant

4 = -f pour Force la suppression dans toutes les mailbox (sous-répertoire)

5 = user/pydubreucq* La maibox et tous ses sous-mailbox (sous-répertoire) – Attention à bien choisir le nom de la mailbox comme trouvé via cyradm

A savoir qu’il est possible d’utiliser cette technique pour par exemple supprimer tous les mails dans le dossier Spam avec une exécution en cron pour tous les utilisateurs par exemple.

Les options à placer pour identifier les mails à purger sont :

[ -d days | -b bytes | -k Kbytes | -m Mbytes ]

Voilà, qui va me faire gagner pas mal de temps et j’espère à vous aussi.