Über den Author / Internet / Server / Confixx / Benutzerdefinierte Filterregeln unter Confixx

Benutzerdefinierte Filterregeln unter Confixx

~3 Min. Lesezeit

Wer nach meiner Confixx Anleitung den Server aufgesetzt hat oder die gleiche Konfiguration nutzt, kann sich am nachfolgenden Tut orientieren.

Benutzerdefinierte Regeln können für vieles genutzt werden. Zum Beispiel von einer Mailadresse wo schreibt/angeschrieben wird das Mail direkt in einem anderen Ordner ablegen, Spam wegwerfen, Autoresponder einrichten und so weiter. Diese Regeln unterschieden sich natürlich bei jedem Benutzer, ist jedoch sehr Vorteilhaft für den Postfachbesitzer.

Als Erstes installiert man maildrop unter Debian wie folgt:

apt-get install courier-maildrop

Ich lass es unter dem Confixx User email laufen und nicht unter dem vmail User welcher immer vorgeschlagen wird und erfasse den User mit:

adduser email

Als Nächstes ein kleiner Fix welcher nur unter Debian nötig ist, damit maildrop auch die Benutzer lesen kann:

chgrp email /var/run/courier/authdaemon

Und nun bearbeiten wir die Datei /etc/maildroprc und fügen folgenden Inhalt ein:

DEFAULT = "$HOME/Maildir"
MAILDIR = "$HOME/Maildir"

logfile "/var/log/maildrop.log"

#Userrules
`test -r $HOME/.mailfilter`
if( $RETURNCODE == 0 )
{
log "(==) Including $HOME/.mailfilter"
exception {
include $HOME/.mailfilter
}
}

#Gegebenenfalls weitere globale Regeln hier einfügen

Hier folgt nun eine Liste mit weiteren Regeln, welche ins die oben genannte Konfigurationsdatei aufgenommen werden können je nach belieben:

Falsche Signatur Dashes reparieren

if ( /^--$/:b)
{
xfilter "sed -e 's/^--$/-- /'"
log "(II) Sig Dashes corrected"
}
 

Virenscanner

if (`/usr/bin/clamdscan --no-summary --stdout | grep -c 'FOUND'` == 1)
{
MAILDIR="$MAILDIR/.Quarantine"
`test -f $MAILDIR/maildirsize && exit 1 || exit 0`
if ( $RETURNCODE == 0 )
{
`maildirmake $MAILDIR`
}
to "$MAILDIR";
}
exception {
VIRUS_TAG=`clamscan -V`
VIRUS_TAG="$VIRUS_TAG on $HOSTNAME"
xfilter "reformail -A 'X-Virus-Checker-Version: $VIRUS_TAG'"
xfilter "reformail -A 'X-Virus-Status: Clean'"
}
 

Spam Filter

if ( $SIZE < 26144 ) { exception { xfilter "spamc -u $RECIPIENT" } } if ( (/^X-Spam-Flag: YES/:h) || (/^X-Spam-Status: Yes/:h) ) { if ( /^X-Spam-Level: *-----.*$/:h ) { cc "| sa-learn --sync --spam" } MAILDIR="$MAILDIR/.Spam" log "$TICKS : >>> TAGGED AS *** SPAM ***" 

log "$TICKS : >>> Mail successfully delivered to $MAILDIR"
exception {
to "$MAILDIR";
}
}
else
{
if ( /^X-Spam-Level: *-.*$/:h )
{
cc "| sa-learn --sync --ham"
}
}

Nun testen wir vorab, ob dropmail funktioniert mit mit einem existierenden User (ohne Postfix):

echo "Hallo" | maildrop -V 5 -d web0p1

Fehler werden direkt an der Console ausgegeben und auch im Logfile /var/log/maildrop.log gespeichert. Erhaltet man Fehler, kann man die 5 auch gegen eine 9 tauschen und erhält genauerer Fehler.

Als nächster Schritt bearbeiten wir den maildrop Eintrag in der Datei /etc/postfix/master.cf:

maildrop  unix  -       n       n       -       -       pipe
flags=DRhu user=email argv=/usr/bin/maildrop -d $USER

Wichtig ist hierbei, das $USER beim Einsatz mit Confixx gross geschrieben wird, da $user auf virtuelle User zeigt und Confixx wirklich System Benutzer verwendet, anderenfalls wird es nicht funktionieren.

Am Schluss fügen wir noch 2 neue Zeilen in die Datei /etc/postfix/main.cf ein:

maildrop_destination_recipient_limit = 1
mailbox_command = /usr/bin/maildrop -d $USER

Ist dies erledigt, kann man den Dienst neustarten mit:

/etc/init.d/postfix restart

Ab sofort kann man dann pro User auch benutzerdefinierte Regeln einrichten, in dem man im Mailverzeichnis des jeweiligen Benutzers eine Datei .mailfilter erstellt (z.B. /home/email/web0p1/.mailfilter).

In dieser Datei lassen sich dann benutzerdefinierte Filterregeln anlegen.

Beispieldatei für benutzerdefinierte Regeln


# Zu einer Bestimmten Adresse, dann in Ordner 2terPosteingang ablegen:
if (/^To:.*mail@adresse.de/)
{
exception {
to "$DEFAULT/.2terPosteingang/"
}
}
# Mails einer bestimmten Person verschieben:
if (/^From:.*@microsoft.com/)
{
exception {
to "$DEFAULT/.Microsoft/"
}
}
if (/^From:.*@(facebook.com|facebookmail.com|xing.com)/)
{
exception {
to "$DEFAULT/.Facebook/"
}
}

Auch nach Titel oder Inhalt lässt sich filtern, doch dies überlasse ich Jedem selbst herauszufinden.

Wichtig sind die richtigen Benutzerrechte auf der Datei, da anderenfalls die Verarbeitung mit dem folgenden Fehler abbricht:

Command output: /usr/bin/maildrop: Cannot have world/group permissions on the filter file – for your own good

Dazu setzen wir:

chown web0p1 /home/email/web0p1/.mailfilter
chmod 600 /home/email/web0p1/.mailfilter

Ist alles eingerichtet, kann man nun dropmail nochmals testen über den Postfix Dienst mit:

echo "Hallo" | mail -s "Testmail" web0p1@deinedomain.de

About Stefan

avatar
Ein männlicher IT Nerd, durchstöbert das Web nach speziellen Gadgets, unentbehrlicher Software und Alles was man im IT Sektor nicht verpassen darf.Immer hilfsbereit wenn Probleme zu lösen sind oder das Unmögliche umgesetzt werden sollte.

Weitere interessante Artikel

Firefox 43 – Platzsparender Hack

~0 Min. LesezeitMan sieht wie schnell die Zeit vergeht, wenn man wiedermal den Platzsparenden Hack …

Virtualbox auf der Synology 1815+ installieren

~2 Min. LesezeitSynology hat sich als NAS Anbieter ein Namen gemacht, doch die kleinen Wunderspeicher …

Schreibe einen Kommentar

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

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

This Blog will give regular Commentators DoFollow Status. Implemented from IT Blögg