Automatische Reinigung von Papierkorb- und/oder Junk-Ordnern mit ISPConfig (mit Roundcube + Tmpreaper (Tmpwatch ))
Übersicht:
Dieses kurze Mini-Howto hilft Ihnen bei der Einrichtung der automatischen Bereinigung von Papierkorb- und Junk-Ordnern. Die meisten (Web-)Mail-Clients (können) diese automatisch erstellen. Viele Leute bereinigen ihre E-Mail-Verzeichnisse nicht, was dazu führt, dass Junk- und Papierkorbordner massiv an Größe zunehmen, und da ISPConfig (noch nicht) in der Lage ist, gute Größenbeschränkungen für E-Mail-Verzeichnisse festzulegen, besteht die Alternative darin, diese Ordner nach einigen Tagen zu bereinigen.
Voraussetzungen:
In dieser Anleitung wird davon ausgegangen, dass Sie derzeit die folgende oder eine ähnliche Konfiguration verwenden:
- Linux Debian Etch (v4.0)
- ISPConfig (v2.2.24 oder höher)
- Machen
- Nano oder vi
- Roundcubemail (Paketinstallation v0.1.1)
- Mindestens 1 Domain mit 1 ausgeführtem Postfach
- Junk-Mail-Set soll in einen Ordner verschoben werden, anstatt es zu löschen (falls nicht gesetzt, siehe Links)
Wenn diese Konfiguration nicht mit Ihrer übereinstimmt, müssen Sie möglicherweise das Howto an Ihre Konfiguration anpassen.
Links:
Tutorial Junk-Mail in einen Ordner verschieben statt zu 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 – Legt fest, dass roundcubemail automatisch Papierkorb- und Junk-Ordner erstellt
Wenn Sie dies bereits entweder per Roundcubemail oder anderen Methoden getan haben, können Sie dieses Kapitel überspringen. Stellen Sie sicher, dass .Trash und .Junk vorhanden sind.
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 "$rcmail_config['create_default_folders']" und vergewissern Sie sich, dass es auf TRUE gesetzt ist, und vergewissern Sie sich, dass die Konfiguration ähnlich ist wie:
[...] // store draft message is this mailbox // leave blank if draft messages should not be stored $rcmail_config['drafts_mbox'] = 'Drafts'; // store spam messages in this mailbox $rcmail_config['junk_mbox'] = 'Junk'; // store sent message is this mailbox // leave blank if sent messages should not be stored $rcmail_config['sent_mbox'] = 'Sent'; // move messages to this folder when deleting them // leave blank if they should be deleted directly $rcmail_config['trash_mbox'] = 'Trash'; // display these folders separately in the mailbox list. // these folders will also be displayed with localized names $rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash'); // automatically create the above listed default folders on login $rcmail_config['create_default_folders'] = TRUE; // protect the default folders from renames, deletes, and subscription changes $rcmail_config['protect_default_folders'] = TRUE; [...]
Wenn sich nun ein Benutzer anmeldet, werden die Mailordner erstellt.
HINWEIS:Dazu muss sich der Benutzer angemeldet haben, sonst existieren keine Papierkorb- und Junk-Ordner und werden natürlich nicht bereinigt!
2 - Installieren Sie tmpreaper
Das Paket tmpwatch befand sich früher im Paketmanager Aptitude, wurde jedoch aus unbekannten Gründen ersetzt. Für andere Linux-Varianten siehe tmpwatch.
Dazu geben wir folgenden Befehl ein:
apt-get install tempreaper
WICHTIG:Wenn Sie tmpreaper verwenden können, fahren Sie mit Kapitel 3 fort. 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 zum Löschen benötigt werden. Wir empfehlen Ihnen, dies auf cron.daily einzustellen, damit es jeden Tag nach E-Mails sucht, 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, sonst würde es immer noch nur täglich überprüft werden.
Dazu gehen wir zu /etc/cron.daily
cd /etc/cron.daily
Jetzt erstellen wir eine neue Datei "clean-mailfolders"
nano clean-mailfolders
Und lass es so aussehen:
#!/bin/sh # Time to wait before removing mails from the Junk folder (Default: 7 days) Set 0 to turn off. junk_max_hours=$((24*7)) # Time to wait before removing mails from the Trash folder (Default: 30 days) Set 0 to turn off. 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
Vielleicht möchten Sie die Daten an Ihre eigenen Bedürfnisse anpassen. Am Anfang der Datei sind 2 Variablen mit dem Namen "junk_max_hours" angegeben, die die maximale Anzahl an Stunden enthalten, die E-Mails im Junk-Ordner aufbewahrt werden, und "trash_max_hours", die die maximale Anzahl an Stunden enthalten, die E-Mails im Papierkorb-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.
Schlussfolgerung
Stellen Sie sicher, dass Sie dies überprüfen, bevor Sie es tatsächlich auf Produktionsservern ausführen. Dieses Tutorial ist ohne jegliche Garantie. Sei weise, teste!
Sie können die Variablen wie zuvor beschrieben an Ihre eigenen Bedürfnisse anpassen.
Ich hoffe euch gefällt mein erstes Tutorial!