procmail
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| procmail [2018-09-24 15:21:44] – angelegt manfred | procmail [2021-07-26 17:14:16] (aktuell) – [Einführung:] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Procmail ====== | ||
| + | |||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | ===== Installation: | ||
| + | |||
| + | # cd / | ||
| + | |||
| + | oder | ||
| + | |||
| + | # portupgrade -RN `cd / | ||
| + | |||
| + | |||
| + | ===== Einführung: | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Wenn " | ||
| + | im Homeverzeichnis ausgewertet ($HOME/ | ||
| + | Users ($MAIL | ||
| + | |||
| + | Will man " | ||
| + | Dateisystem liegt, muss diese als Parameter uebergeben werden. | ||
| + | |||
| + | # vi / | ||
| + | | ||
| + | # fritz: "| procmail / | ||
| + | |||
| + | # newaliases | ||
| + | |||
| + | zum konvertieren einer Mailbox: | ||
| + | |||
| + | # formail -ds < old_mailbox >> new_mailbox | ||
| + | |||
| + | und wenn es von Procmail gleich weiter verarbeitet werden soll: | ||
| + | |||
| + | # cat old_mailbox | formail -ds procmail -Y / | ||
| + | |||
| + | Für Procmail ist eine E-Mail erst zu Ende, wenn der Datenstrom abreißt. | ||
| + | Mit anderen Worten, das Dateiende erreicht wurde. | ||
| + | |||
| + | Da ich " | ||
| + | einzupflegen) und nicht komplett studiere, ist auf dieser Seite auch nichts | ||
| + | weiter zu finden. | ||
| + | |||
| + | |||
| + | Weitere Beispiele: | ||
| + | |||
| + | # man procmailex | ||
| + | |||
| + | |||
| + | ===== mehrere Beispiele einer ~/ | ||
| + | |||
| + | <hidden ~/ | ||
| + | <file bash ~/ | ||
| + | ################################################################################ | ||
| + | ### unvollstaendige Liste von Filtertypen | ||
| + | ### siehe "man procmailrc" | ||
| + | # :0 # Abbruch wenn filter zutrifft | ||
| + | # :0c # ... immer weiter machen, auch wenn Filter zutrifft | ||
| + | # :0H # nur Header pruefen | ||
| + | # :0h # nur Header zur weiteren Pruefung weiterleiten | ||
| + | # :0B # nur Message Body pruefen | ||
| + | # :0b # nur Message Body zur weiteren Pruefung weiterleiten | ||
| + | # :0D # Gross-/ | ||
| + | ################################################################################ | ||
| + | |||
| + | |||
| + | |||
| + | ### | ||
| + | SHELL = /bin/sh | ||
| + | PATH =$HOME/ | ||
| + | ### Das Verzeichnis ($HOME/ | ||
| + | ### hier werden die unten in den Regeln definierten Verzeichnisse angelegt | ||
| + | MAILDIR = $HOME/Mail/ | ||
| + | ### hier werden die Mails auch nochmal komplett reingeschrieben | ||
| + | # | ||
| + | LOGFILE = $HOME/ | ||
| + | LOCKFILE=$HOME/ | ||
| + | |||
| + | ### | ||
| + | ### Folgendes wird von Procmail ausgefuehrt: | ||
| + | ### Die Verzeichnisse " | ||
| + | ### wird angelegt, wenn es noch nicht existiert, | ||
| + | ### dann wird jede einzelne E-Mail | ||
| + | ### in eine separate Datei geschrieben. | ||
| + | ### | ||
| + | ### $MAILDIR/ | ||
| + | ### " | ||
| + | #:0c | ||
| + | #mail/ | ||
| + | |||
| + | ### | ||
| + | ### Das Verzeichnis " | ||
| + | ### muss schon existieren, dann wird jede | ||
| + | ### einzelne E-Mail in eine separate | ||
| + | ### Datei geschrieben. | ||
| + | ### | ||
| + | ### $MAILDIR/ | ||
| + | ### " | ||
| + | #:0c | ||
| + | |||
| + | |||
| + | ### | ||
| + | ### Das Verzeichnis wird angelegt, | ||
| + | ### wenn es noch nicht existiert. | ||
| + | ### Die E-Mails werden im " | ||
| + | ### das bedeutet, jede einzelne E-Mail wird in | ||
| + | ### eine separate Datei geschrieben und die | ||
| + | ### Namen der Dateien sind fortlaufend | ||
| + | ### nummeriert. | ||
| + | ### | ||
| + | ### $MAILDIR/ | ||
| + | ### " | ||
| + | #:0c | ||
| + | #`date +%Y%m%d`/. | ||
| + | |||
| + | ### | ||
| + | ### | ||
| + | ### Content-Type: | ||
| + | ### Content-Type: | ||
| + | ### | ||
| + | ### Write a recipe that inserts into a variable (call it BOUND) the boundary string. | ||
| + | ### Note that the potential quotes (") are not to be part of that string. | ||
| + | ### Also note that the header might be divided on multiple lines as in | ||
| + | ### | ||
| + | ### Content-Type: | ||
| + | ### | ||
| + | ### | ||
| + | ### There are alternative solutions, which not necessarily are quite equivalent. | ||
| + | ### The first one is putting high up in your ~/ | ||
| + | ### | ||
| + | ### BOUND1=`formail -z -x" | ||
| + | ### | ||
| + | ### A second one is: | ||
| + | ### | ||
| + | ### :0h | ||
| + | ### * ^Content-Type: | ||
| + | ### { BOUND2=`egrep -i ' | ||
| + | ### | ||
| + | ### This was not in the exercise, but you can then have recipes like | ||
| + | ### | ||
| + | ### :0: | ||
| + | ### * ! BOUND2 ?? ^^^^ | ||
| + | ### WhateverFolder | ||
| + | ### | ||
| + | ################################################################################ | ||
| + | |||
| + | ### | ||
| + | ### Write a recipe to detect a " | ||
| + | ing message. | ||
| + | ### Ignore case in the pattern. | ||
| + | ### | ||
| + | ### :0B: | ||
| + | ### * ? sed -n 2p | egrep -is ' | ||
| + | ### WhateverPatternMail | ||
| + | |||
| + | |||
| + | |||
| + | ### Wenn die Filterzeilen " | ||
| + | ### dann werden die Mails auch in die System-Mailbox | ||
| + | ### eingetragen. | ||
| + | |||
| + | |||
| + | ### ganze Mail | ||
| + | :0c | ||
| + | *^From | ||
| + | testmaildir-complete/ | ||
| + | |||
| + | |||
| + | ### Mail-Kopf | ||
| + | :0ch | ||
| + | *^From | ||
| + | testmaildir-head/ | ||
| + | |||
| + | |||
| + | ### Mail-Body | ||
| + | :0cb | ||
| + | *^From | ||
| + | testmaildir-body/ | ||
| + | |||
| + | |||
| + | ### Verschiebt Mails mit dem Wort " | ||
| + | :0H: | ||
| + | * ^Subject: | ||
| + | .trash | ||
| + | |||
| + | |||
| + | ### E-Mails mit binaerem (nicht lesbarem) Anhang werden hier verarbeitet | ||
| + | :0 | ||
| + | *^From | ||
| + | * ^Content-Type: | ||
| + | { | ||
| + | :0 B | ||
| + | * ^Content-.*base64 | ||
| + | { | ||
| + | :0 | ||
| + | { RULE=" | ||
| + | :0: | ||
| + | testmaildir-base64/ | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
