Re: Procmail

From: Andreas Braukmann <braukmann(at)tse-online.de>
Date: Fri, 28 Apr 2000 18:52:50 +0200

Hi,

On Fri, Apr 28, 2000 at 06:58:08AM +0200, Andreas Klemm wrote:
> On Fri, Apr 21, 2000 at 05:08:51PM +0200, Andreas Braukmann wrote:
> > Bei Fehlern
> > * geht _nie_ Mail verloren
 
> Du kannst procmail so programmieren, daß die letzten n mails
> im archiv landen.
hatte ich ja vorher auch.

> Dann gibt es noch ein ganz nettes spambouncer Paket für procmail
> http://www.spambouncer.org/
das sollte doch - wenn ich die genannten procmail-recipes
in Deinem Beispiel richtig verstanden haben - auch mit
maildrop ordentlich zusammenarbeiten?
Aber ich finde, dass Spam-Erkennung nicht zu den Aufgaben
des mail delivery agents gehoert. Das lass ich lieber den MTA
machen (und zwar den 'externen').

> Anbei mein .procmailrc für ein paar sinnvolle Beispiele:
 
> Das kann man in einer sendmail mc config Datei machen ...
> FEATURE(local_procmail)
uuups. In welche Datei unter /var/qmail/control/ gehoert
das denn? >&-}
 
 
Ich zeig mal beispielhaft einen Ausschnitt aus meinen
maildrop-Filtern.
Die ueblichen Standardfilter fuer direkt an mich adressierte
Mail hab' ich mal weggelassen.

    # Mailfiltering mit 'maildrop'
    # ----------------------------------
    # ~/.mailfilter
    # 1999/12/16 - Andreas Braukmann
    #

    logfile ${HOME}/mdrop.log

    fdir = ${HOME}/.mfilters # Verzeichnis fuer die Filterdateien
    mb = ${HOME}/Mail # Basis aller Mailordner
    miscmail = ${mb}/misc # Ordner fuer "all son zeuch .."

    mdir = "/var/qmail/bin/maildirmake" # Kommando zum Maildir-Erzeugen

    # ... warum sollte man eigentlich fuer jede FreeBSD-Liste
    # eine eigene Regel haben? phhh. Wir sind faul ...

    # hier versuchen wir ersteinmal alle BSD-Mailinglisten
    # zu erwischen und gleichzeitig festzustellen, um welche
    # BSD-Mailingliste es sich gerade handelt.
    # Dazu untersuchen wir die _h_eader
    # Den Namen der Mailingliste merken wir uns in MATCH2

    if ( /^Sender: owner-freebsd-![a-zA-Z0-9]+!@freebsd.org$/:h )
    {
        include ${fdir}/bsd.filter
    }

    if ( /^Sender: owner-de-bsd-![a-zA-Z0-9]+!@de.freebsd.org$/:h )
    {
        include ${fdir}/bsd.filter
    }

[...]
Die include-Files werden zum Ausfuehrungszeitpunkt 'lokal' zum
jeweils umfassendem Block 'eingefuegt' und ausgefuehrt.
Das spart im Hauptfilter-File jede Menge Zeit.

Der 'bsd.filter' ist mein Lieblingsfilter. ~/.mfilters/bsd.filter
sieht so aus:

    #
    # Behandle "alle" BSD-Mailinglisten, ...
    # - Identifizierung erfolgt anhand des Sender-Headers
    # - Zustellung erfolgt in Listenordner, ... existiert dieser
    # noch nicht, so wird er vor der Zustellung angelegt.
    #

    bsd = ${mb}/bsd # Basis aller BSD-Mailordner

        ok="0" # erstmal pessimistisch sein, ...

        targetBox="${bsd}/${MATCH2}"
        log ${targetBox}
        `test -d ${targetBox}`
        if ( ${RETURNCODE} != "0" ) {
                `${mdir} ${targetBox}`
                if ( ${RETURNCODE} != "0" ) {
                        ok="1" # ok. jetzt.
                }
        } else {
                log "box war ok"
                ok="1" # ok. jetzt.
        }

        if ( ${ok} == "1" ) {
                # alles klar, also zustellen
                to ${targetBox}
        } else {
                # Mailbox existierte noch nicht und konnte auch
                # auch nicht angelegt werden?
                # dann stellen wir in die vorhandene Misc-Mailbox zu
                to ${bsd}/misc
        }

Klar, ... sowas geht mit procmail auch ;)
Aber maildrop ist definitiv schneller und schreibt ordentliche
Fehlermeldungen ins maillog

-- 
: Anti-Spam Petition:     http://www.politik-digital.de/spam/          :
: PGP-Key:                http://www.tse-online.de/~ab/public-key      :
: Key fingerprint:  12 13 EF BC 22 DD F4 B6  3C 25 C9 06 DC D3 45 9B   :
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 28 Apr 2000 - 18:46:45 CEST

search this site