E-Mail/Procmail: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
Eichi (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Beschreibung=
{{AlertBox|title=Achtung|content=Das Programm '''procmail''' ist seit mehreren Jahren veraltet und wird nicht mehr unterstützt. Die Anwendung '''Maildrop''' steht als Alternative zur Verfügung. Eine Dokumentation in diesem Wiki gibt es dafür leider noch nicht.}}
 


Mittels des Programms '''procmail''' können E-Mails direkt beim Eintreffen auf dem Server sortiert und gefiltert werden.
Mittels des Programms '''procmail''' können E-Mails direkt beim Eintreffen auf dem Server sortiert und gefiltert werden.
{{AlertBox|title=Achtung|content=Diese Anleitung erfordert die Verwendung einer .courier-Datei. Dazu muss entweder die verwendete Domain auf [[E-Mail/Manuelle Konfiguration|manuelle Konfiguration]] eingestellt werden oder Sie leiten die zu filternden E-Mails auf eine [[E-Mail/Manuelle_Konfiguration#Benutzer-Adresse_mit_Erweiterung|Benutzer-E-Mail-Adresse]] um, die grundsätzlich mit .courier-Dateien verwaltet werden.}}




=Vorbereitung=
=Vorbereitung=
Zuerst sollten sie sich mit der Konfiguration von qmail vertraut machen. [[E-Mail/Konfiguration/.qmail-Dateien]]
Zuerst sollten sie sich mit der grundsätzlichen Konfiguration unseres Mail-Servers vertraut machen. Eine Hilfestellung dazu bietet die Seite [[E-Mail/Manuelle Konfiguration/.courier-Dateien|über '''.courier'''-Dateien]].
Minimaler inhalt der .qmail-xxxxxx datei ist:
 
Um '''procmail''' auszuführen, muss die '''.courier'''-Datei mindestens folgenden Inhalt haben:


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


optional könnte sie auch so aussehen:
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-ifvirus put ./Mail/.Virus/
  |/usr/local/bin/keks-user-qmail-ifspam put ./Mail/.Spam/
  |/usr/local/bin/keks-user-qmail-ifspam put ./Mail/.Spam/
  |/usr/local/bin/preline -f procmail
  |/usr/local/bin/preline -f /usr/bin/procmail
 
{{AlertBox
{{AlertBox
  |title=Reihenfolge beachten
  |title=Reihenfolge beachten
  |content=wobei die Reihenfolge auch die Reihenfolge der bearbeitung wiederspiegelt:
  |content=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 in den Spam-Ordner verschoben
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 '''procmail''' in der Datei '''~/.procmailrc'''.
 
Procmail gehört zu den traditionellen Unix-Werkzeugen und erfordert für die Konfiguration ein waches Auge. Schon ein einzelner Tippfehler kann zu unerwarteten Ergebnissen führen.
Eine verständliche, deutschsprachige Kurzanleitung zu Procmail-Regeln finden Sie z.B. unter http://www.butschek.de/fachartikel/procmail-faq/.
 
= Beispielkonfiguration =


=Haupt-Konfiguration=
Wir verwenden an dieser Stelle eine Konfiguration, die in mehrere Dateien aufgeteilt ist. Dies macht es übersichtlicher und erlaubt auch eine große Zahl an Filterregeln zu verwalten.
Die eigentliche Konfiguration findet in der Datei /home/<user>/.procmailr< statt.


Aussehen könnte sie, recht selbsterklärend, wie folgt:
Dazu benötigen wir zunächst eine Haupt-Datei (''.procmailrc''), die wie folgt aufgebaut ist:
  # ----------------------------------- main files and dirs
  # ----------------------------------- main files and dirs
  DEFAULT=${HOME}/Mail
  DEFAULT=${HOME}/Mail/
  MAILDIR=${HOME}/Mail
  MAILDIR=${HOME}/Mail/
  PMDIR=${HOME}/.procmail
  PMDIR=${HOME}/.procmail
  # ----------------------- Logging
  # ----------------------- Logging
Zeile 37: Zeile 49:
  INCLUDERC=${PMDIR}/catch-all.rc
  INCLUDERC=${PMDIR}/catch-all.rc


{{Box
Hier wird "Mail/" als primäre Mailbox voreingestellt. Alle späteren Filterregeln können die Ziel-Mailbox relativ dazu angeben. Anschließend wird ".procmail/" als Verzeichnis mit weiteren Regeldateien eingestellt. Mittels INCLUDERC= werden diese in der Haupt-Konfigurationsdatei eingebunden. Speicherort und Dateiname können aber beliebig gewählt werden. Selbiges gilt für die Log-Datei.  
|title=Auslagerung der Filter-Regeln
 
|content=Aufgrund einer besseren Übersicht, sind die Filter-Regeln im Ordner /home/<user>/.procmail/ als *.rc ausgelagert,
Die Log-Datei kann weggelassen und die Filterregeln können in die '''.procmailrc''' geschrieben werden, beides ist jedoch nicht empfehlenswert.
die mit einem INCLUDERC= einfach implementiert werden können. Jener Ort und Dateiname kann aber beliebig gewählt werden. Selbiges gilt für die Log-Datei.
 
Die Log Datei kann weggelassen und die Filterregeln können in die .procmailrc geschrieben werden, beides ist jedoch nicht empfehlenswert.
|image=
}}


=Filter=
== Eigentliche Filterregeln ==
Zuerst sollten sie eine '''catch-all.rc'' erstellen und mit INCLUDERC '''an letzter Stelle''' einfügen werden, die jenen Inhalt beherbergt:
:0:
new
Somit wird jene Mail, die auf keinen der vorherigen Filter zutrifft, in den Haupt-Mail-Ordner unter /new abgelegt, erscheint also in ihrem E-Mail-Client unsortiert und als "ungelesen".


erstellen wir eine Datei mit den Namen lists.rc im procmail-Ordner. (hier: /home/<user>/.procmail/)
Um die eigentlichen Filterregeln festzulegen, erstellen wir die genannten Dateien (z.B. ''lists.rc'') im procmail-Ordner. (hier: /home/<user>/.procmail/)
Sie soll die Filterregeln aller Mailinglisten beinhalten.
Sie soll die Filterregeln aller Mailinglisten beinhalten.
hier exemplarisch ein Beispiel, dass die Syntax verdeutlichen soll: (zum Schutz meiner Privatsphäre teilweise zensiert)


  # ---------------------------------------------- CCC Debatten Mailingliste
  # ---------------------------------------------- CCC Debatten Mailingliste
  :0
  :0
  * ^(To:|Cc:).*(debate@lists.ccc.de|debate@ccc.de)
  * ^(To:|Cc:).*(debate@lists.ccc.de|debate@ccc.de)
  .MLs.CCC-Debatten/new
  .MLs.CCC-Debatten/
 
  # ----------------------------------------------- LUG tuebingen
  # ----------------------------------------------- LUG tuebingen
  :0
  :0
  * ^(To:|Cc:).*lug-tuebingen@jura.uni-tuebingen.de
  * ^(To:|Cc:).*lug-tuebingen@jura.uni-tuebingen.de
  .MLs.LnxGroupTue/new
  .MLs.LnxGroupTue/
 
  # ---------------------------------------------- tiles@home
  # ---------------------------------------------- tiles@home
  :0
  :0
  * ^Subject:.*[\tilesathome\]
  * ^Subject:.*[\tilesathome\]
  .MLs.tiles@home/new
  .MLs.tiles@home/


# ----------------------------------------------- <<censored>>
Nach den selben Schemata lassen sich die Filter.rc-Dateien beliebig erweitern und neue *.rc-Dateien hinzufügen, '''INCLUDERC nicht vergessen!'''
:0
* ^Subject:.*[\<<censored>>-tuebingen]
.MLs.<<censored>>/new


{{Box
Unter http://www.64-bit.de/dokumentationen/netzwerk/f/002/DE-Mailserver-HOWTO-5.html finden sie weitere Filtermöglichkeiten und eine umfangreiche Beschreibung der Syntax
|title=
|content=Nach den selben Schemata lassen sich die Filter.rc-Dateien beliebig erweitern und neue *.rc-Dateien hinzufügen,
INCLUDERC nicht vergessen!
|image=
}}
http://www.64-bit.de/dokumentationen/netzwerk/f/002/DE-Mailserver-HOWTO-5.html Hier finden sie weitere Filtermöglichkekeiten und eine genauere Beschreibung der Syntax

Aktuelle Version vom 1. Dezember 2014, 17:22 Uhr

Achtung

Das Programm procmail ist seit mehreren Jahren veraltet und wird nicht mehr unterstützt. Die Anwendung Maildrop steht als Alternative zur Verfügung. Eine Dokumentation in diesem Wiki gibt es dafür leider noch nicht.


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

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 procmail auszuführen, muss die .courier-Datei mindestens folgenden Inhalt haben:

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

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/procmail
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 procmail in der Datei ~/.procmailrc.

Procmail gehört zu den traditionellen Unix-Werkzeugen und erfordert für die Konfiguration ein waches Auge. Schon ein einzelner Tippfehler kann zu unerwarteten Ergebnissen führen. Eine verständliche, deutschsprachige Kurzanleitung zu Procmail-Regeln finden Sie z.B. unter http://www.butschek.de/fachartikel/procmail-faq/.

Beispielkonfiguration

Wir verwenden an dieser Stelle eine Konfiguration, die in mehrere Dateien aufgeteilt ist. Dies macht es übersichtlicher und erlaubt auch eine große Zahl an Filterregeln zu verwalten.

Dazu benötigen wir zunächst eine Haupt-Datei (.procmailrc), die wie folgt aufgebaut ist:

# ----------------------------------- main files and dirs
DEFAULT=${HOME}/Mail/
MAILDIR=${HOME}/Mail/
PMDIR=${HOME}/.procmail
# ----------------------- Logging
LOGFILE=${PMDIR}/procmail.log
VERBOSE=yes
LOGABSTRACT=all
# ----------------------------------- filters
INCLUDERC=${PMDIR}/lists.rc
INCLUDERC=${PMDIR}/catch-all.rc

Hier wird "Mail/" als primäre Mailbox voreingestellt. Alle späteren Filterregeln können die Ziel-Mailbox relativ dazu angeben. Anschließend wird ".procmail/" als Verzeichnis mit weiteren Regeldateien eingestellt. Mittels INCLUDERC= werden diese in der Haupt-Konfigurationsdatei eingebunden. Speicherort und Dateiname können aber beliebig gewählt werden. Selbiges gilt für die Log-Datei.

Die Log-Datei kann weggelassen und die Filterregeln können in die .procmailrc geschrieben werden, beides ist jedoch nicht empfehlenswert.


Eigentliche Filterregeln

Um die eigentlichen Filterregeln festzulegen, erstellen wir die genannten Dateien (z.B. lists.rc) im procmail-Ordner. (hier: /home/<user>/.procmail/) Sie soll die Filterregeln aller Mailinglisten beinhalten.

# ---------------------------------------------- CCC Debatten Mailingliste
:0
* ^(To:|Cc:).*(debate@lists.ccc.de|debate@ccc.de)
.MLs.CCC-Debatten/

# ----------------------------------------------- LUG tuebingen
:0
* ^(To:|Cc:).*lug-tuebingen@jura.uni-tuebingen.de
.MLs.LnxGroupTue/

# ---------------------------------------------- tiles@home
:0
* ^Subject:.*[\tilesathome\]
.MLs.tiles@home/

Nach den selben Schemata lassen sich die Filter.rc-Dateien beliebig erweitern und neue *.rc-Dateien hinzufügen, INCLUDERC nicht vergessen!

Unter http://www.64-bit.de/dokumentationen/netzwerk/f/002/DE-Mailserver-HOWTO-5.html finden sie weitere Filtermöglichkeiten und eine umfangreiche Beschreibung der Syntax