Postfix-Cyrus-Procmail-SpamAssassin Howto

von David Lais

+ Konfiguration - Procmail

Viele haben sich bestimmt schon gefragt:
"Wozu brauchen wir Procmail, wenn doch Postfix schon die Mails zustellen kann?"

Die Antwort ist ganz einfach: Mit Procmail haben wir nun einen mächtigen Filter. Wir können so zum Beispiel ganz leicht die Mails auf Spam oder auf Viren überprüfen. Vielleicht sollen bestimmte Mails auch in zwei Mailboxen. Dies lässt sich jetzt ganz einfach serverseitig filtern.

Zuerst erstellen wir die Datei /etc/procmailrc. In ihr werden wir alles Notwendige definieren.

/etc/procmailrc

# Procmail
LOGFILE="/var/log/procmail"
VERBOSE=off

DELIVERMAIL="/usr/lib/cyrus/deliver"
DAEMON="MAILER-DAEMON@mail.postfix-howto.de"
SENDMAIL="/usr/sbin/sendmail -i -f \
  MAILER-DAEMON\@mail.postfix-howto.de -t $SENDER"

# Mailbox-Zustellung
INBOX="$DELIVERMAIL -f $SENDER -a $USER $USER"

# Grundsaetzlich pruefen!
CHECK = 1

# Check
:0
* $CHECK ?? 1
{
    :0fw
    * < 110000
    | /usr/bin/spamc -u filter

    # Wann soll die Mail noch durch den Virenscanner?
    :0
    * ^X-Spam-Status: No .*$
    {
        :0fw
        * > 8000
        | /usr/bin/clamassassin
    }
}

# Viren bitte ab in die Tonne
:0w
* ^X-Virus-Status: Yes
/dev/null

:0 e
{
    EXITCODE=$?
    :0 w
    * EXITCODE ?? [75]
    {
        REC=`formail -zx"To:"`
        EXITCODE=0
        :0
        * ^X-Loop: bounce@postfix-howto.de
        /dev/null
        :0
        | formail -rk -I"Subject: Mail delivery \
         failed for user: $USER (MailAdr: $REC)" \
         -A"FROM: $DAEMON" -A"Precedence: junk" \
         -A"X-Loop: bounce@postfix-howto.de" | $SENDMAIL
    }
}

# an INBOX zustellen
:0w
| $INBOX

HOST

Erklärung:
LOGFILE="/var/log/procmail", gibt die LOG Datei an.
VERBOSE=off, schaltet Debug Informationen an oder aus.
DELIVERMAIL="/usr/lib/cyrus/deliver". Das ist der Befehl für die Mailbox Zustellung
DAEMON="MAILER-DAEMON@mail.postfix-howto.de", die E-Mail Adresse des mailer daemon. Bitte hier auf eure Domain setzen.
SENDMAIL="/usr/sbin/sendmail -i -f MAILER-DAEMON\@mail.postfix-howto.de -t $SENDER", gibt den sendmail Befehl für denn mailer daemon an.
INBOX="$DELIVERMAIL -f $SENDER -a $USER $USER", gibt den Mailbox Befehl an.

Damit Postfix die Mails nun richtig an Procmail ausliefert, ändern wir den Procmail Eintrag in der /etc/postfix/master.cf wie folgt um:

Procmail eintrag in: /etc/postfix/master.cf

procmail unix -    n    n    -    20    pipe
    flags=R user=cyrus argv=/usr/bin/procmail -o SENDER=${sender}
        -m USER=${user} EXTENSION=${extension} /etc/procmailrc

Bitte drauf achten, dass bei euch in der zweiten Zeile KEIN Umbruch ist.

Damit weisen wir nun Postfix an, die Mails an Procmail weiterzugeben und die nötigen Optionen für den Cyrus-Deliver.

Jetzt haben wir auch Procmail fertig konfiguriert.


« Zurük zu Postfix | Weiter mit SpamAssassin »