unixwitch.de --  de:sysadmin:tools:maildrop   --  go to Navigation

Mail sortieren mit Maildrop

Mein Mailserver läuft mit Postfix und der IMAP-Server heißt Dovecot, leider wird beim Dovecot-Sieve-Plugin dazu geraten, den ganzen Dovecot selber zu bauen → Nachteil: Aufwendig, und Auto-Updates usw. funktionieren auch nicht mehr.

Gesucht ist also eine Alternative ... hier ein sehr einfaches Beispiel für Maildrop.

Installation

Maildrop ist eine Komponente des Courier-Mailservers, lässt sich aber auch ohne Courier installieren und verwenden.

Unschön: es gibt bei Suse (10.1) kein unabhängiges RPM für Maildrop.

Sehr schön: das herunterladbare Original-TAR-Archiv 1) ist kein RPM, lässt sich aber direkt in ein solches umbauen:
rpmbuild -ta maildrop-2.0.3.tar.bz2 2)

Im üblichen RPM-Fertigbau-Verzeichnis 3) findet sich bei Erfolg eine neue RPM-Datei, bei mir hiess maildrop-2.0.3-1.x86_64.rpm -
die per rpm -ihv / pfad/pfad/mairldrop-*.rpm installieren.

Nachtrag 2008-02-26: RPM-Paketbau funktioniert mit Suse 10.3 und maildrop-2.0.4-1 genauso

Konfiguration

Es gibt diverse Möglichkeiten, ich wollte die ganze local delivery bei den bisherigen Mechanismen (LMTP) lassen.

Hier meine Low-Tech Nix-Änder-Variante: (nur mein Benutzer ist betroffen)

.forward

Mit .forward kann man E-Mails an andere Adressen oder auch an lokale Befehle weiterleiten (wenn der Admin das erlaubt).

$HOME/.forward:

"|/usr/bin/maildrop -A 'X-maildrop: sorted'"

Ankommende Mail wird an das Programm maildrop weitergeleitet. Dabei wird die Headerzeile “X-maildrop: sorted” oben in die Mail eingefügt (das ist hier nicht nötig, ausser um den Spieltrieb zu befriedigen ;-)).

.mailfilter

Was soll jetzt Maildrop mit der Mail tun? Das steht in der Datei $HOME/.mailfilter:

# normale inbox:
MD="/home/username/Maildir"

# Mail an meine alte Maildomain (nahezu nur spam)
mdOLDdomain="$MD/.INBOX.OLDdomain"
if ( /^To:.*old.org/ )
     {
        to $mdOLDdomain
     }

# Mail aus der Arbeit
mdWork="$MD/.INBOX.work"
if ( /^From:.*firma.de/ )
{
        to $mdWork
}

# andere Mail in die normale INBOX
to $MD

Ich verwende Maildir als Speichermethode für Mails, Maildrop kann aber auch MBOX.

Mail an alle Adressen, die mit “old.org” enden, sollen in den Maildir-Ordner /home/username/Maildir/.INBOX.OLDdomain verschoben werden (das ist in der INBOX der Unterordner OLDdomain, wenn man mit IMAP zugreift - zumindest in meiner Dovecot-Installation).

Mail an alle Adressen, die mit “*firma.de” enden, bitte in den Maildir-Ordner /home/username/Maildir/.INBOX.work ablegen (IMAP: INBOX/work).

Alle anderen Mails sollen ganz normal in der INBOX gespeichert werden (Maildir-Ordner /home/username/Maildir)

Anmerkungen

Der Weg über .forward ist kein Muß: Wenn es auf Performance ankäme, oder Mails für alle Benutzer sortiert werden sollten, liesse sich Maildrop auch ohne Umweg über Postfix integrieren ... Ich wollte aber für meine private Mailsortiererei nicht den LMTP (Postfix Mailausliefer-Mechanismus für lokale Mails) ersetzen (oder im Zweifelsfall ein Bein stellen).

Vergleich zu Sieve

Vorteile:

  • Maildrop sieht vielseitiger aus als Sieve
  • Die Syntax von Maildrop kommt mir wesentlich weniger fehleranfällig vor als sieve.

Nachteile:

  • bei Sieve muss sich der Benutzer nicht einloggen sondern kann die Sortierbefehle normalerweise von einem anderen Rechner per Sieve-Protokoll hochladen (IIRC habe ich dies teilweise auch schon in guten Mailprogrammen gesehen.)
  • wird mit virtuellen Benutzern schwieriger

Links


gilt für alle Tipps, Tricks & Spickzettel:
dies sind einfache, teils banale Notizen für meinen persönlichen Gebrauch, die hier eher zufällig auch öffentlich lesbar sind (vielleicht hilft es ja jemandem weiter). Verwendung auf eigene Gefahr :!:

Fehler-Hinweise, Dankesschreiben :-), etc. bitte an: web.1105@unixwitch.de

weitere Tools / Spickzettel

2) als Compile-Voraussetzung wurden bei mir verlangt: fam fam-devel gdbm gdbm-devel
3) default irgendwo unter /usr/src/packages/RPMS/, nur als root schreibbar, besser eigene RPM-Bauumgebung basteln, siehe selflinux zur rpmbuild-Umgebung


 
Back to top   ||   go to Navigation   ||   Login   ||   www.unixwitch.de (enhanced function + design)