E-Mail/Maildrop

Aus schokokeks.org Wiki
Wechseln zu: Navigation, Suche

Mittels des Programms maildrop können E-Mails direkt beim Eintreffen auf dem Server sortiert und gefiltert werden.

Alert.png
Achtung

Diese Anleitung erfordert die Verwendung einer .courier-Datei. Dazu muss entweder die verwendete Domain auf manuelle Konfiguration eingestellt werden oder Sie leiten die zu filternden E-Mails auf eine Benutzer-E-Mail-Adresse um, die grundsätzlich mit .courier-Dateien verwaltet werden.


Vorbereitung

Zuerst sollten sie sich mit der grundsätzlichen Konfiguration unseres Mail-Servers vertraut machen. Eine Hilfestellung dazu bietet die Seite über .courier-Dateien.

Um maildrop auszuführen, muss die .courier-Datei mindestens folgenden Inhalt haben:

  |/usr/local/bin/preline -f /usr/bin/maildrop

mit zusätzlichem Aufruf eines Spam- und Virenfiltern könnte die Datei auch so aussehen:

|/usr/local/bin/keks-user-qmail-ifvirus put ./Mail/.Virus/
|/usr/local/bin/keks-user-qmail-ifspam put ./Mail/.Spam/
|/usr/local/bin/preline -f /usr/bin/maildrop
Alert.png
Reihenfolge beachten

Achten Sie darauf, dass die Reihenfolge innerhalb der Datei auch die Reihenfolge der Bearbeitung wiederspiegelt: Sollte eine Mail als Spam erkannt werden, wird die Mail nicht mehr zu procmail durchgeleitet sondern z.B. in den Spam-Ordner verschoben


Konfiguration

Die eigentliche Konfiguration sucht maildrop in der Datei ~/.mailfilter.

Alternativ kann dem Aufruf ein Dateiname angehängt werden.

Alert.png
Berechtigungen beachten!

Maildrop beachtet nur Konfigurationsdateien die ausschließlich für den betreffenden Benutzer lesbar sind. Mit chmod 600 .mailfilter können die Rechte passend gesetzt werden.


Beispielkonfiguration

Die Datei .mailfilter' sollte zunächst eine Standard-Mailbox setzen, in die Nachrichten einsortiert werden, die nicht extra behandelt werden. Zudem sollen Aktionen protokolliert werden. Dazu beginnt die Datei etwa so:

DEFAULT="$HOME/Mail/"
MAILBOX="$HOME/Mail/"

logfile "$HOME/.mailfilter.log"


Hier wird "Mail/" als primäre Mailbox voreingestellt und in die Variable ${MAILBOX} gespeichert. Alle späteren Filterregeln können die Ziel-Mailbox relativ zu ${MAILBOX} angeben. Die Log-Datei kann natürlich später nach ausgiebigen Tests weggelassen werden.


Eigentliche Filterregeln

Folgende Beispiel-Filterregeln sollen die Verwendung verdeutlichen. Es besteht jeweils aus einer if-Abfrage, die auf einen regulären Ausdruck prüft. Der reguläre Ausdruck steht zwischen Schrägstrichen /.../ und es kann optional :h nachgestellt werden um die Prüfung nur im Mail-Header durchzuführen. Mit dem Befehl "to" wird dann das Zustellziel angegeben.

# ---------------------------------------------- CCC Debatten Mailingliste
if ( /^(To:|Cc:).*(debate@lists.ccc.de|debate@ccc.de)/:h )
{
  to ${MAILBOX}.MLs.CCC-Debatten/
}

# ----------------------------------------------- LUG tuebingen
if ( /^(To:|Cc:).*lug-tuebingen@jura.uni-tuebingen.de/:h )
{
  to ${MAILBOX}.MLs.LnxGroupTue/
}

# ---------------------------------------------- tiles@home
if ( /^Subject:.*[\tilesathome\]/:h )
{
  to ${MAILBOX}.MLs.tiles@home/
}

# ---------------------------------------------- Diese Mails kommentarlos löschen
if ( /^From: .*evil@badboy.net/:h )
{
  exit
}


Es sind natürlich noch viele weitere Möglichkeiten gegeben. Eine Übersicht bietet die offizielle Dokumentation von Maildrop. Eine Anleitung zur Konversion von Procmail-Regel in das Maildrop-Format gibt es unter http://www.wonkity.com/~wblock/docs/html/maildrop.html