E-Mail Verwaltung · 4 min read · Dec 26, 2025

Automatische Reinigung von Trash- und Junk-Ordnern mit ISPConfig (mit Roundcube + Tmpreaper (Tmpwatch))

Automatische Reinigung von Trash- und Junk-Ordnern mit ISPConfig (mit Roundcube + Tmpreaper (Tmpwatch))

Übersicht:

Dieses kurze Mini-Handbuch hilft Ihnen, die automatische Reinigung von Trash- und Junk-Ordnern einzurichten. Die meisten (Web-)Mail-Clients können diese automatisch erstellen. Viele Menschen reinigen ihre Mailverzeichnisse nicht, was dazu führt, dass Junk- und Trash-Ordner massiv an Größe zunehmen, und da ISPConfig (noch nicht) in der Lage ist, gute Größenlimits für Mailverzeichnisse festzulegen, besteht die Alternative darin, diese Ordner nach mehreren Tagen zu reinigen.

Voraussetzungen:

Dieses Tutorial geht davon aus, dass Sie derzeit die folgende oder eine ähnliche Konfiguration verwenden:

  • Linux Debian Etch (v4.0)
  • ISPConfig (v2.2.24 oder später)
  • Make
  • Nano oder vi
  • Roundcubemail (v0.1.1 Paketinstallation)
  • Mindestens 1 Domain mit 1 laufendem Postfach
  • Junk-Mail so eingestellt, dass sie in einen Ordner verschoben wird, anstatt gelöscht zu werden (Wenn nicht eingestellt, siehe Links)

Wenn diese Konfiguration nicht mit Ihrer übereinstimmt, müssen Sie das Handbuch möglicherweise an Ihre Konfiguration anpassen.

Links:

Tutorial zum Verschieben von Junk-Mail in einen Ordner anstelle von Löschen: https://www.howtoforge.com/forums/showthread.php?t=15704
Roundcubemail v0.1.1 Paketinstallation: http://ispconfig.bb-hosting.org/downloads/roundcube/roundcubemail-0.1.1.pkg

1 - Roundcubemail so einstellen, dass automatisch Trash- und Junk-Ordner erstellt werden

Wenn Sie dies bereits entweder über Roundcubemail oder andere Methoden getan haben, können Sie dieses Kapitel überspringen. Stellen Sie sicher, dass .Trash und .Junk existieren.

Um Roundcubemail so einzustellen, dass Mailordner automatisch erstellt werden, müssen wir die Roundcubemail-Konfiguration ändern:

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

Suchen Sie nach “$rcmail_config[‘create_default_folders’]” und stellen Sie sicher, dass es auf TRUE gesetzt ist und dass die Konfiguration ähnlich aussieht wie:

[...]
// Entwurfsmail in diesem Postfach speichern
// leer lassen, wenn Entwurfsmails nicht gespeichert werden sollen
$rcmail_config['drafts_mbox'] = 'Entwürfe';
// Spam-Nachrichten in diesem Postfach speichern
$rcmail_config['junk_mbox'] = 'Junk';
// gesendete Nachrichten in diesem Postfach speichern
// leer lassen, wenn gesendete Nachrichten nicht gespeichert werden sollen
$rcmail_config['sent_mbox'] = 'Gesendet';
// Nachrichten in diesen Ordner verschieben, wenn sie gelöscht werden
// leer lassen, wenn sie direkt gelöscht werden sollen
$rcmail_config['trash_mbox'] = 'Trash';
// diese Ordner separat in der Postfachliste anzeigen.
// diese Ordner werden auch mit lokalisierten Namen angezeigt
$rcmail_config['default_imap_folders'] = array('INBOX', 'Entwürfe', 'Gesendet', 'Junk', 'Trash');
// automatisch die oben aufgeführten Standardordner beim Login erstellen
$rcmail_config['create_default_folders'] = TRUE;
// die Standardordner vor Umbenennungen, Löschungen und Abonnementänderungen schützen
$rcmail_config['protect_default_folders'] = TRUE;
[...]

Jetzt werden die Mailordner erstellt, wenn sich ein Benutzer anmeldet.

HINWEIS: Dies erfordert, dass der Benutzer sich angemeldet hat, sonst existieren die Trash- und Junk-Ordner einfach nicht und werden natürlich nicht gereinigt!

2 - tmpreaper installieren

Das Paket tmpwatch war früher im Paketmanager Aptitude, wurde jedoch aus unbekannten Gründen ersetzt. Für andere Linux-Varianten siehe tmpwatch.

Um dies zu tun, geben wir den folgenden Befehl ein:

apt-get install tempreaper

WICHTIG: Wenn Sie tmpreaper verwenden können, überspringen Sie Kapitel 3. Wenn Sie tmpwatch verwenden müssen, vergessen Sie nicht, die Cron-Datei zu ändern!

Wenn Sie tmpreaper nicht verwenden können, können Sie tmpwatch wie folgt herunterladen und installieren:

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

Danke an MTvermoes!

3 - Einen Cronjob hinzufügen

Wir müssen jetzt einen Cronjob hinzufügen, damit das System täglich überprüft, welche E-Mails zur Löschung anstehen. Wir empfehlen, dies auf cron.daily einzustellen, sodass täglich nach E-Mails gesucht wird, die alt genug sind, um gelöscht zu werden. Sie könnten es jedoch auch in cron.hourly platzieren, was notwendig ist, wenn Sie eine maximale Zeit von weniger als 24 Stunden verwenden, da es sonst nur täglich überprüft wird.

Um dies zu tun, gehen wir zu /etc/cron.daily

cd /etc/cron.daily

Jetzt erstellen wir eine neue Datei “clean-mailfolders”

nano clean-mailfolders

Und lassen Sie sie so aussehen:

#!/bin/sh
# Zeit, die gewartet werden soll, bevor E-Mails aus dem Junk-Ordner entfernt werden (Standard: 7 Tage) Setzen Sie 0, um es auszuschalten.
junk_max_hours=$((24*7))
# Zeit, die gewartet werden soll, bevor E-Mails aus dem Trash-Ordner entfernt werden (Standard: 30 Tage) Setzen Sie 0, um es auszuschalten.
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

Sie möchten möglicherweise die Daten ändern, um Ihren eigenen Bedürfnissen gerecht zu werden. Am Anfang der Datei werden 2 Variablen mit den Namen “junk_max_hours” angegeben, die die maximale Anzahl von Stunden enthalten, in denen E-Mails im Junk-Ordner aufbewahrt werden, und “trash_max_hours”, die die maximale Anzahl von Stunden enthalten, in denen E-Mails im Trash-Ordner aufbewahrt werden. Wenn Sie den Wert auf 0 setzen, wird die Bereinigung dieses Typs deaktiviert.

HINWEIS: Wenn Sie tmpwatch anstelle von tmpreaper verwenden müssen, vergessen Sie nicht, die Cron-Datei zu ändern und “tmpreaper” durch “tmpwatch” zu ersetzen.

Fazit

Stellen Sie sicher, dass Sie dies überprüfen, bevor Sie es tatsächlich auf Produktionsservern ausführen. Dieses Tutorial kommt ohne jegliche Garantie. Seien Sie weise, testen Sie!

Sie können die Variablen anpassen, um Ihren eigenen Bedürfnissen gerecht zu werden, wie zuvor beschrieben.

Ich hoffe, Ihnen gefällt mein erstes Tutorial!

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.