Configuration Serveur · 4 min read · Dec 26, 2025

Nettoyage automatique des dossiers Corbeille et/ou Spam avec ISPConfig (Avec Roundcube + Tmpreaper (Tmpwatch))

Nettoyage automatique des dossiers Corbeille et/ou Spam avec ISPConfig (Avec Roundcube + Tmpreaper (Tmpwatch))

Aperçu :

Ce mini-guide vous aidera à configurer le nettoyage automatique des dossiers Corbeille et Spam. La plupart des clients de messagerie (web) peuvent automatiquement créer ces dossiers. Beaucoup de gens ne nettoient pas leurs répertoires de messagerie, ce qui entraîne une croissance massive des dossiers Spam et Corbeille, et avec ISPConfig (pas encore) capable de définir de bonnes limites de taille de répertoire de messagerie, l’alternative est de faire nettoyer ces dossiers après plusieurs jours.

Prérequis :

Ce tutoriel suppose que vous utilisez actuellement la configuration suivante ou similaire :

  • Linux Debian Etch (v4.0)
  • ISPConfig (v2.2.24 ou ultérieur)
  • Make
  • Nano ou vi
  • Roundcubemail (installation du paquet v0.1.1)
  • Au moins 1 domaine avec 1 boîte aux lettres en cours d’exécution
  • Les courriers indésirables doivent être déplacés dans un dossier au lieu d’être supprimés (Si ce n’est pas le cas, voir les liens)

Si cette configuration ne correspond pas à la vôtre, vous devrez peut-être ajuster le guide pour l’adapter à votre configuration.

Liens :

Tutoriel pour déplacer les courriers indésirables dans un dossier au lieu de les supprimer : https://www.howtoforge.com/forums/showthread.php?t=15704
Installation du paquet Roundcubemail v0.1.1 : http://ispconfig.bb-hosting.org/downloads/roundcube/roundcubemail-0.1.1.pkg

1 - Configurer Roundcubemail pour créer automatiquement les dossiers Corbeille et Spam

Si vous avez déjà fait cela soit par Roundcubemail soit par d’autres méthodes, vous pouvez sauter ce chapitre. Assurez-vous que .Trash et .Junk existent.

Pour configurer Roundcubemail afin de créer automatiquement des dossiers de messagerie, nous devons modifier la configuration de Roundcubemail :

nano /home/admispconfig/ispconfig/web/roundcubemail/config/main.inc.php

Localisez “$rcmail_config[‘create_default_folders’]” et assurez-vous qu’il est défini sur TRUE et que la configuration est similaire à :

[...]
// stocker le message brouillon dans cette boîte aux lettres
// laisser vide si les messages brouillons ne doivent pas être stockés
$rcmail_config['drafts_mbox'] = 'Brouillons';
// stocker les messages de spam dans cette boîte aux lettres
$rcmail_config['junk_mbox'] = 'Spam';
// stocker le message envoyé dans cette boîte aux lettres
// laisser vide si les messages envoyés ne doivent pas être stockés
$rcmail_config['sent_mbox'] = 'Envoyés';
// déplacer les messages vers ce dossier lors de leur suppression
// laisser vide s'ils doivent être supprimés directement
$rcmail_config['trash_mbox'] = 'Corbeille';
// afficher ces dossiers séparément dans la liste des boîtes aux lettres.
// ces dossiers seront également affichés avec des noms localisés
$rcmail_config['default_imap_folders'] = array('INBOX', 'Brouillons', 'Envoyés', 'Spam', 'Corbeille');
// créer automatiquement les dossiers par défaut listés ci-dessus à la connexion
$rcmail_config['create_default_folders'] = TRUE;
// protéger les dossiers par défaut contre les renommages, suppressions et changements d'abonnement
$rcmail_config['protect_default_folders'] = TRUE;
[...]

Maintenant, lorsque l’utilisateur se connecte, les dossiers de messagerie seront créés.

NOTE : Cela nécessite que l’utilisateur se soit connecté, sinon les dossiers Corbeille et Spam n’existent tout simplement pas et ne seront bien sûr pas nettoyés !

2 - Installer tmpreaper

Le paquet tmpwatch était auparavant dans le gestionnaire de paquets Aptitude, mais pour des raisons inconnues, il a été remplacé. Pour d’autres variantes de Linux, voir tmpwatch.

Pour ce faire, nous entrons la commande suivante :

apt-get install tempreaper

IMPORTANT : Si vous pouvez utiliser tmpreaper, passez au chapitre 3. Si vous devez utiliser tmpwatch, n’oubliez pas de modifier le fichier cron !

Si vous ne pouvez pas utiliser tmpreaper, vous pouvez télécharger et installer tmpwatch comme suit :

cd /usr/src  
wget http://linux.bononline.nl/linux/tmpwatch/src/tmpwatch-2.9.0.tar.gz  
tar xvzf tmpwatch-2.9.0.tar.gz  
cd tmpwatch-2.9.0  
make  
make install

Merci à MTvermoes !

3 - Ajouter un cronjob

Nous devons maintenant ajouter un cronjob afin que le système vérifie quotidiennement quels emails doivent être supprimés. Nous vous suggérons de le définir sur cron.daily pour qu’il vérifie chaque jour les mails suffisamment anciens pour être supprimés. Cependant, vous pourriez également le placer dans cron.hourly, ce qui est nécessaire si vous utilisez un temps maximum de moins de 24 heures, sinon il ne serait vérifié que quotidiennement.

Pour ce faire, nous allons dans /etc/cron.daily

cd /etc/cron.daily

Maintenant, nous créons un nouveau fichier “clean-mailfolders”

nano clean-mailfolders

Et le faire ressembler à :

#!/bin/sh
# Temps à attendre avant de supprimer les mails du dossier Spam (Par défaut : 7 jours) Définir 0 pour désactiver.
junk_max_hours=$((24*7))
# Temps à attendre avant de supprimer les mails du dossier Corbeille (Par défaut : 30 jours) Définir 0 pour désactiver.
trash_max_hours=$((24*30))
for domain in /var/www/*
do
  if [ -d "$domain"/user ]
  then
    for user in $domain/user/*
    do
      if [ "$junk_max_hours" -gt "0" ]
      then
        if [ -d "$user/Maildir/.Junk" ]
        then
          tmpreaper -m $junk_max_hours $user/Maildir/.Junk/{cur,new}
        fi
      fi
      if [ "$trash_max_hours" -gt "0" ]
      then
        if [ -d "$user/Maildir/.Trash" ]
        then
          tmpreaper -m $trash_max_hours $user/Maildir/.Trash/{cur,new}
        fi
      fi
    done
  fi
done

Vous voudrez peut-être changer les dates pour répondre à vos propres besoins. Au début du fichier, 2 variables sont données, nommées “junk_max_hours” contenant le maximum d’heures que les mails dans le dossier Spam sont conservés et “trash_max_hours” contenant le maximum d’heures que les mails dans le dossier Corbeille sont conservés. Définir la valeur à 0 désactivera le nettoyage de ce type.

NOTE : Si vous devez utiliser tmpwatch au lieu de tmpreaper, n’oubliez pas de modifier le fichier cron et de remplacer “tmpreaper” par “tmpwatch”.

Conclusion

Assurez-vous de vérifier cela avant de l’exécuter sur des serveurs de production. Ce tutoriel ne vient avec aucune garantie. Soyez prudent, testez !

Vous pouvez modifier les variables pour répondre à vos propres besoins comme décrit précédemment.

J’espère que vous aimez mon premier tutoriel !

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.