Automatisches Leeren des Papierkorbs & Spam-Ordners

Dieses Thema im Forum "Tipps - Tricks - Mods" wurde erstellt von customhost, 9. Juni 2015.

  1. customhost

    customhost New Member

    Hallo zusammen,

    ich war auf der Suche nach einer Lösung für das automatische Leeren des Papierkorbs & Spam-Ordners nach 30 Tagen (à la GMail), um zu verhindern, dass die Mailboxen unnötig voll laufen. Ich nutze Debian Wheezy und Dovecot 2.
    Vorab sei gesagt, dass sich für große Mailserver aus Performancegründen eher das Dovecot-Plugin "Expire" für die Erledigung dieser Aufgabe eignet (siehe: http://wiki2.dovecot.org/Plugins/Expire). Ich nutze allerdings nur einen kleinen Mailserver, weshalb ich mich für die einfachere Cronjob-Lösung entschieden habe, welche wie folgt aussieht:

    1. Dovecot SQL anpassen
    Code:
    nano /etc/dovecot/dovecot-sql.conf
    Die iterate_query muss auskommentiert und wie folgt angepasst, sowie [SERVER_ID] durch die ID eures jeweiligen Servers ersetzt werden.
    Code:
    # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers.
    # Do not enable it on Dovecot 1.x servers
    iterate_query = SELECT email as user FROM mail_user WHERE server_id = '[SERVER_ID]'

    2. Expunge-Skript mit folgendem Inhalt erstellen
    Code:
    nano /etc/dovecot/dovecot_expunge.sh
    Code:
    #!/bin/bash
    #
    DOVEADM="/usr/bin/doveadm";
    
    $DOVEADM expunge -A mailbox Trash savedbefore 30d
    $DOVEADM expunge -A mailbox Junk  savedbefore 30d

    3. Expunge-Skript ausführbar machen
    Code:
    chmod +x /etc/dovecot/dovecot_expunge.sh

    4. Cronjob anlegen
    Code:
    crontab -e
    Code:
    # Dovecot expunge Spam and Trash folders
    00 03 * * * /etc/dovecot/dovecot_expunge.sh
    Die Ausführungszeit kann selbstverständlich frei gewählt werden, z.B. für die Ausführung nur 1x im Monat.


    5. Änderungen updatesicher machen
    Aus der ISPConfig-Installation muss hierfür die Datei /ispconfig3_install/install/tpl/debian6_dovecot-sql.conf.master angepasst und mit folgendem Inhalt auf den Zielserver ins Verzeichnis /usr/local/ispconfig/server/conf-custom/install/ kopiert werden:
    Code:
    # http://wiki.dovecot.org/AuthDatabase/SQL
    #
    # CREATE TABLE users (
    #     userid VARCHAR(128) NOT NULL,
    #     password VARCHAR(64) NOT NULL,
    #     home VARCHAR(255) NOT NULL,
    #     uid INTEGER NOT NULL,
    #     gid INTEGER NOT NULL,
    #     active CHAR(1) DEFAULT 'Y' NOT NULL
    # );
    
    driver = mysql
    connect = host={mysql_server_host} dbname={mysql_server_database} user={mysql_server_ispconfig_user} password={mysql_server_ispconfig_password}
    default_pass_scheme = CRYPT
    
    password_query = SELECT password FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '{server_id}'
    user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '{server_id}'
    
    # The iterate_query is required for the doveadm command only and works only on dovecot 2 servers.
    # Do not enable it on Dovecot 1.x servers
    iterate_query = SELECT email as user FROM mail_user WHERE server_id = '{server_id}'
    Die Variablen wie {server_id}, {mysql_server_database} etc werden bei jedem Update automatisch durch die korrekten Werte ersetzt.

    6. Fertig!

    Ich hoffe diese kleine Anleitung hilft dem ein oder anderen von euch weiter.
     
    Zuletzt bearbeitet: 9. Juni 2015
    Till gefällt das.

Diese Seite empfehlen