IT-Academy Logo
Sign Up Login Help
Home - Internet - E-Mail-Regeln (Mailfilter) mit Procmail unter Debian Linux



E-Mail-Regeln (Mailfilter) mit Procmail unter Debian Linux

Die meisten E-Mail-Clients unterstützen E-Mail-Regeln oder –Filter, mit denen sich ankommende E-Mails sehr leicht und übersichtlich in Ordner verschieben lassen. Bei vielen Anwendungen macht es jedoch Sinn, die E-Mails gleich direkt am Server sortieren zu lassen.


Autor: Stefan Schultheis (schulti)
Datum: 13-07-2003, 20:33:08
Referenzen: www.procmail.org, http://pm-doc.sourceforge.net/, http://rhols66.adsl.netsonic.fi/era/procmail/mini-faq.html
Schwierigkeit: Profis
Ansichten: 16948x
Rating: 8 (3x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einleitung

Ich habe mir für meine private Korrespondenz einen Mailserver unter Debian Linux installiert. Um bequem meine E-Mails über IMAP lesen zu können, habe ich mich für courier-imapd entschieden. Als MTA (Mail Transport Agent) ist exim installiert.
Da ich in meiner Anleitung Procmail jedoch nicht direkt vom MTA aufrufe, sollte diese Anleitung auch für die gängigen MTAs, wie zum Beispiel sendmail oder qmail, gültig sein. Voraussetzung für diesen Text ist, dass der MTA und auch courier-imapd bereits funktionsfähig installiert und konfiguriert sind.

Aktivieren von Procmail

Procmail ist ein UNIX-Tool, mit dem lokal ankommende E-Mails behandelt werden können. Um Procmail aufzurufen, richte ich ein Forwarding (eine Weiterleitung) meines lokalen Benutzers auf Procmail ein. Das Mail wird nun basierend auf den definierten Regeln behandelt und am Ende im richtigen Ordner zugestellt. Die Installation unter Debian ist mittels apt-get install procmail sehr einfach und beeinflusst die bestehende MTA-Konfiguration nicht. Ich habe in meinem Home-Verzeichnis eine Datei mit dem Namen ~/.procmailrc erstellt. Dort trage ich die Standardparameter ein, mit denen ich Procmail anweise, wie die Mails zu behandeln sind. In meinem Fall ist wichtig, dass die Nachrichten im MailDir-Format zugestellt werden. Dieses Format benötigt der IMAP-Server zum Verwalten der Mailbox-Ordnerstruktur. Meine Konfiguration sieht so aus:

DEFAULT=$HOME/Maildir/
MAILDIR=$HOME/Maildir
PMDIR=$HOME/.procmail
LOGFILE=$PMDIR/log
SHELL=/bin/sh


Die Logdateien von Procmail befinden sich in der Datei $HOME/.procmail/log. Damit diese dort abgelegt werden können, müssen wir das Verzeichnis anlegen:

mkdir ~/.procmail Jetzt können wir die Weiterleitung für ankommende E-Mails für meinen Benutzer aktivieren. Dazu erstellen wir eine Datei ~/.forward und beauftragen den MTA, alle E-Mails an Procmail zuzustellen:

"|/usr/bin/procmail" Nun probieren wir das Setup aus! Ich schicke ein Email an meine Adresse und überprüfe, dass mein Mailprogramm die Nachricht im Posteingang (INBOX) findet. Bisher merke ich als Benutzer keinen Unterschied! Das Mail kommt wie gewohnt an, tatsächlich wird das Mail aber nicht mehr direkt von exim zugestellt sondern über procmail. Sollte hier ein Problem aufgetreten sein, könnte ich einfach die Datei .forward löschen oder umbenennen und der MTA würde das Mail wie gewohnt zustellen.

Definieren der Regeln

Da bei mir alles funktioniert und die Nachricht angekommen ist, möchte ich nun die Filterregeln definieren. Über meinen Mailclient habe ich bereits ein paar IMAP-Folder angelegt, denen ich gemäß der folgenden Tabelle ankommende E-Mails zuweisen möchte:

Funktion Beschreibung im procmail RC-Format
Alle Mails mit dem Absender "irgendwer@debian.org" sollen in den Ordner "Debian" verschoben werden. :0
* ^From:.*debian.org
.Debian/

Alle E-Mails mit dem Betreff "test" sollen in Ordner "test" sortiert werden. :0
* ^Subject:.*test
.test/


Die Befehlszeilen aus der rechten Spalte füge ich in meiner Datei ~/.procmailrc hinzu. Die erste Zeile (:0) definiert, dass hier eine Regel folgt und keine Lock-Datei erstellt werden muss. Allen Zeilen, die mit "*" beginnen, folgt eine Regular Expression (RegEx) nach der die Nachricht untersucht wird.

Die letzte Zeile im Block definiert die Aktion, z.B.: Ablegen im Folder .Debian. Ab sofort sind die Regeln aktiv und können getestet werden, also schicke ich ein Mail mit dem Subject "test". Das Mail wird korrekt im IMAP-Order "test" zugestellt. Ebenso werden ab sofort alle E-Mails, die von beliebigen Absendern aus der @debian.org-Domain erhalte, in den Ordner "Debian" gelegt.

Quellen

http://www.procmail.org
http://pm-doc.sourceforge.net/
http://rhols66.adsl.netsonic.fi/era/procmail/mini-faq.html


schulti
Junior-Member
Beitrag vom:
15-07-2003, 18:39:18

Achtung: Owner richtig setzen

Bei einem User hat die beschriebene Lösung nicht funktioniert, weil die Dateibesitzer falsch gesetzt waren. Achtet darauf, dass ~.procmailrc und ~/.procmail immer dem User selbst gehören und nicht root. Sonst funktioniert's nicht! -- Stefan

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04503
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16551
Queueeinträge:06236
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1137
Comments: 0