[Postfixbuch-users] Re: Endlosschleife beim MDA maildrop?

Thilo Engelbracht info at engelbracht.de
Mo Nov 29 19:06:17 CET 2004


Am 29.11.2004 um 16:12 Uhr schrieb Ralf Hildebrandt:

> * Thilo Engelbracht <info at engelbracht.de>:
> > Hallo Liste!
> > 
> > Auf meinem Server setze ich den MDA maildrop ein.
> 
> Ich jetzt auch
>  
> > Jeder lokale Benutzer hat eine individuelle "~/.mailfilter". Hier können
> > die E-Mails in verschiedene IMAP-Ordner einsortiert werden.
> 
> Jo
>  
> > Zusätzlich existiert eine Datei mit globalen Filterregeln. In diesem
> > File ("/etc/maildroprc") sind u.a. folgende Zeilen enthalten:
> 
> Jo
> 
> Wie hier.
> 
> >      if (/^x-spam-status: yes/)
> 
> Besser:      if (/^x-spam-status: yes/:h)
> 
> >      {
> >           xfilter "/usr/bin/spamassassin --remove-markup"
> >      }
> 
> ??? Warum das?
> OK, aber egal. markup entfernen.
> 
> >      # Alle E-Mails pruefen, die kleiner als 500 kB sind
> > 
> >      if ( $SIZE < 500000 )
> >      {
> >           xfilter "/usr/bin/spamc"
> >      }
> 
> Wenn klein, dann an spamc
> 
> >      # Alle Nachrichten, die als SPAM erkannt wurden, werden an den
> >      # Benutzer "spam" weitergeleitet.
> > 
> >      if (/^x-spam-status: yes/)
> >      {
> >           to "!spam at hostname.domainname.tld"
> >           exit
> >      }
> 
> Wenn spamc sagt es sei spam, dann weiterleiten und finito
> 
> > Nun meine Frage:
> > Wenn der User "thilo" eine SPAM-Mail empfängt, dann wird diese an den
> > Benutzer "spam" weitergeleitet. Allerdings wird auch bei dem Benutzer
> > "spam" die Datei mit den globalen Filterregeln abgearbeitet.
> 
> Dann stell das doch ab :)
> if ($USER=="spam") ...

Hallo Ralf,

vielen Dank für Deine Antworten.

Gerade habe ich folgendes versucht:

     if ($USER=="spam")
     {
          ...
     }

Leider hat das so nicht funktioniert... Dann habe ich die von Dir
empfohlenen Manpages studiert und folgendes herausgefunden:

1.) Die Variable $USER wird in der Manpage nicht behandelt. Kann es
    sein, dass diese Variable gar nicht ausgewertet wird?

2.) Laut der Manpage handelt es sich bei "==" um einen numerischen
    Vergleich, ähnlich wie "<", "<=", ">", ">=", "!=".
    Für einen Textvergleich werden u.a. "eq" (für "equal"?) und
    "ne" (für "not equal"?) verwendet.

Mit folgenden Zeilen habe ich mein Ziel erreicht:

     if ($HOME ne "/home/spam")
     {
          ...
          ...
          ...
     }

Die Punkte symbolisieren die "normalen" Anweisungen aus meiner ersten
E-Mail.

Jetzt wollte ich (Newbie!) aber noch einmal nachfragen:
Stimmt das so? Oder bin ich - wie man so schön sagt - auf dem Holzweg?

Vielen Dank für Deine Mühe und Deine schnellen Antworten!


Gruß,

Thilo



Mehr Informationen über die Mailingliste Postfixbuch-users