Hallo zusammen,
ich versuche gerade SpamAssassin, Postfix, Courier-IMAP und procmail unter einen Hut zu bekommen. Lange Zeit habe ich nun eine Kombination aus Postfix, SpamAssassin und Courier-IMAP gehabt und war stets glücklich. Nun wollte ich wegen mehrerer Mailinglisten gerne eine Sortierung innerhalb des Maildirs durch procmail realisieren, jedoch scheint dieser die Maildir - Dateien nach einem anderen Schema abzulegen, welches sich glaube ich nicht mit meinem bisherigen verträgt.
Mails, die direkt durch Postfix angenommen und anschließend durch SpamAssassin geprüft wurden, landeten immer nach etwa diesem Schema in meinem Maildir:
"1282573816.V902Ic8c23M466042.h1774772:2," (als Beispiel) "1282573816.V902Ic8c23M466042.": Keine Ahnung, wie dieser Teil sich zusammen setzt. "h1774772" ist der Hostname meines Servers ":2," Diese Kontrollzeichen kommen soweit ich weiss vom Courier-IMAP, der damit kennzeichnet, ob eine Mail gelesen, neu, beantwortet, etc. ist.
Als ich testweise jedoch kurz durch die Einstellung "mailbox_command = /usr/bin/procmail -t" in der main.cf von Postfix aktiviert habe, wurden die Mails zwar gemäß meiner Regeln sortiert, jedoch wurden sie auf einmal in etwa so abgelegt:
"msg.M6jC:2,S" Auch hier sieht das ":2,S" wieder nach dem Courier-IMAP Flag für den Status aus. Aber wieso ändert sich der komplette Rest, bzw.: Wie kann ich auch durch procmail verarbeitete Mails nach dem alten Schema ablegen lassen?
Des weiteren scheinen nach dem setzen der Option "mailbox_command = /usr/bin/procmail -t" die Mails nicht mehr durch Spamassassin gefiltert zu werden, wie das Log, sowie der Header der Mails belegt. Spamassassin ist bei mir durch folgende Änderungen an Postfix master.cf eingebunden:
smtp inet n - n - - smtpd -o content_filter=spamassassin spamassassin unix - n n - - pipe flags=Rq user=spamfilter argv=/home/spamfilter/filter.sh -oi -f ${sender} ${recipient}
/home/spamfilter/filter.sh ist hierbei nicht viel mehr als ein wrapper:
#!/bin/sh # filter.sh # # This script redirects mail flagged as spam to a separate account # You must first create a user account named "spamvac" to hold the flagged mail SENDMAIL="/usr/sbin/sendmail -i" SPAMASSASSIN=/usr/bin/spamc COMMAND="$SENDMAIL $@" USER=`echo $COMMAND | awk '{ print $NF }' | sed 's/@.*$//'` NEW_COMMAND=`echo $COMMAND | awk '{ $6 = "spamfilter"; NF = 6; print }'` # Exit codes from <sysexits.h> EX_TEMPFAIL=75 EX_UNAVAILABLE=69 umask 077 OUTPUT="`mktemp /tmp/mailfilter.XXXXXXXXXX`" if [ "$?" != 0 ]; then /usr/bin/logger -s -p mail.warning -t filter "Unable to create temporary file." exit $EX_TEMPFAIL fi # Clean up when done or when aborting. trap "rm -f $OUTPUT" EXIT SIGTERM $SPAMASSASSIN -x -E -u $USER > $OUTPUT return="$?" if [ "$return" == 1 ]; then $NEW_COMMAND < $OUTPUT exit $? elif [ "$return" != 0 ]; then /usr/bin/logger -s -p mail.warning -t filter "Temporary SpamAssassin failure (spamc return $return)" exit $EX_TEMPFAIL fi $SENDMAIL "$@" < $OUTPUT exit $?
Kann mir hier jemand weiterhelfen? Auch wenn er nur zu einem Teil der Fragestellung etwas zu sagen weiß, wäre ich froh weiter zu kommen!