Plesk Server: Postfach automatisch leeren

Wenn man mit Plesk eine Email Postfach einrichtet und gleichzeitig eine Weiterleitung einrichtet, kann man nicht einstellen, dass die Mails automatisch gelöscht werden. Ein Anwendungsfall ist, wenn man die Mail Adresse zum versenden verwendet, aber die Mails z.B. an Google Mail weiter leitet.

Die Lösung ist ein Skript welches regelmäßig das Postfach leert.

#!/bin/bash
#Parameter ist der Postfachname, damit das Skript nur von dieser Domain die Mails löscht
mailbox="$1@domain.de"

allMailboxes=($(plesk bin mail -l | grep "Mail name" | tr '\t' ' ' | cut -d' ' -f 3-))
if [[ ! " ${allMailboxes[@]} " =~ " ${mailbox} " ]]; then
    echo "$mailbox kenne ich nicht. Das mach ich nicht mit."
    exit 1
fi


for folder in $(doveadm mailbox list -u $mailbox)
do
    # Alles sofort löschen. Evtl. ein Problem wenn Mail noch nicht weiter geleitet ist?    
    #doveadm expunge -u $mailbox mailbox "$folder" all
    # Alles löschen was älter als 10 Minuten ist.
    doveadm expunge -u $mailbox mailbox "$folder" before 600s
done

Das skript prüft den übergebenen Parameter ob es zu einer Mailbox passt. Dies kann man evtl. auch weglassen.

Alle Ordner in der Mailbox werden dann in einer Schleife gelöscht. Dies kann man natürlich gezielt auf einzelne Ordner begrenzen und es gibt auch die Möglichkeit nur ältere Mails zu löschen.

Wenn ein Benutzer dies z.B: über einen cronjob/ssh ausführen soll, könnte man dies mit einer gezielten sudoers Regeln umsetzen. Dazu einfach eine Datei /etc/sudoers.d/meine-regel erstellen.

myusername ALL = (root) NOPASSWD: /usr/bin/maildelete-domain.de

Ein cronjob kann auch direkt aus plesk erstellt werden.

Plesk: 18.0.29
Ubuntu: 18.04.5

Quellen

https://support.plesk.com/hc/en-us/articles/115002372774-How-to-delete-all-or-some-emails-from-a-mailbox-without-logging-in-to-the-mailbox-

https://support.plesk.com/hc/en-us/articles/115004510793-Plesk-usage-statistics-for-a-mailbox-is-displayed-incorrectly

Download als PDF

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.