Postfix und Spamassassin ohne Procmail: Wie Mails verschieben in einen anderen Ordner?

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland

Postfix und Spamassassin ohne Procmail: Wie Mails verschieben in einen anderen Ordner?

Post by sfeni » 2005-09-02 10:33

Hi,

der Titel sagt eigentlich schon alles.
Wie kann ich mit Postfix (Maildir) und Spamassassin eine Mail mit dem Spamflag im Header in einen anderen Ordner des Benutzers verschieben? Ohne Procmail!

Warum ohne Procmail?
Wenn ich Procmail aktiviere, dann wird bei dem Erstellen einer neuen Mailbox die Maildir-Struktur nicht erstellt, sobald eine Mail eintrifft.

Gerne auch mit anderen möglichen Tools, habe schonmal was von maildrop gelesen, aber mehr weis ich von maildrop leider nicht.

Server ist ein SuSE 9.2

Vielen Dank!

stefanpropehan
Posts: 335
Joined: 2002-12-17 22:25
Location: Berlin

Re: Postfix und Spamassassin ohne Procmail: Wie Mails verschieben in einen anderen Ordner?

Post by stefanpropehan » 2005-09-02 11:03

Du wirst auf jeden Fall einen MDA wie maildrop oder procmail brauchen.

Mit procmail kenne ich mich leider nicht aus aber mit maildrop ist das ganze kein Problem.

Kleiner Auszug aus meiner maildroprc

Code: Select all

# Has the maildir already been created?
`test -d "$MAILDIR"`
if( $RETURNCODE == 1 )
{
        `mkdir -p $DELIVERY`
        `rmdir $DELIVERY`
        `/usr/bin/maildirmake "$MAILDIR"`
}

# check spam flag
if (/^X-Spam-Flag: YES/)
{
       DELIVERY = $MAILDIR.Spam
       SPAMFILTER=0
}
if ( $SIZE < $SCANSPAMSIZE )
{
       exception {
           xfilter "spamc -u $LOGNAME"
       }
       # Spam?
       if (/^X-Spam-Flag: YES/)
       {
           DELIVERY = $MAILDIR.Spam
       }
}
# create needed sub-directory, if it doesn't exist
`test -d "$DELIVERY"`
if( $RETURNCODE == 1 )
{
        `mkdir -p $DELIVERY`
        `rmdir $DELIVERY`
        `/usr/bin/maildirmake "$DELIVERY"`
}

sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland

Maildrop auf SuSE 9.2

Post by sfeni » 2005-09-10 14:07

Kurzes HowTo für jemand, der das auch umsetzen will mit SuSE 9.2

fam-devel per yast installieren
gdbm-devel per yast installieren
gcc-c++ per yast installieren

maildrop-1.8.1.tar.bz2 herunterladen

RPM Paket bauen:

Code: Select all

rpmbuild -tb maildrop-1.8.1.tar.bz2
Das RPM testen:
Die RPMs werden in folgendes Verzeichnis kopiert: /usr/src/packages/RPMS/i586/

Code: Select all

cd /usr/src/packages/RPMS/i586/
rpm -ivh --test maildrop*.rpm
Bei Fehlermeldungen entsprechend handeln :-D

Dann die RPMs installieren:

Code: Select all

rpm -ivh maildrop*.rpm
Bei mir traten Fehler auf mit man's des courier-imap, daher habe ich folgenden Befehl verwendet:

Code: Select all

rpm -ivh --replacefiles maildrop*.rpm
Maildrop ist nun installiert, anschliessend kann es konfiguriert werden...

Hierzu sind ein paar Anpassungen notwendig:

/etc/postfix/main.cf

Code: Select all

virtual_transport = maildrop
/etc/postfix/master.cf

Code: Select all

maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=nobody argv=/usr/bin/maildrop -d ${recipient}
Alles andere in Howtos etc... die ich gefunden habe, führte zu Problemen, da er das Maildir nicht öffnen konnte.
Fehlermeldung war immer fogende: maildrop - Unable to open Mailbox

Nun könnt ihr eure maildroprc entsprechend anpassen.