Procmail liefert nicht an Cyrus aus

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
lorddarkmage
Posts: 36
Joined: 2006-10-26 05:57

Procmail liefert nicht an Cyrus aus

Post by lorddarkmage » 2007-08-03 14:19

Hallo zusammen,

bin echt kurz vor der Verzweiflung.

Kurz erklärt:
Hab mir vor gut einem Jahr einen Mailserver aufgesetzt. Postfix, Spamassassin und als Krönchen noch Cyrus-IMAP. Rennt auch alles prima. Nun ist es so, dass die Spamflut mitlerweile so hoch ist, dass es nicht mehr ausreicht Mails einfach zu markieren und vom Mailclient löschen/sortieren zu lassen. Ich möchte nun, dass Mail mit einem Score von mehr als 12 direkt ab nach /dev/null gehen. Zu dem Zweck hab ich mir zusätzlich Procmail installiert.

Code: Select all

LOGFILE="/var/log/procmail"
VERBOSE=on
:0hfw
| /usr/bin/formail -I "From "

:0fw
* < 110000
| /usr/bin/spamc -u filter

:0
* ^X-Spam-Level: ***************
{
    LOG = "*** SPAM DELETED *** "
    :0
    /dev/null
}

INBOX="/usr/sbin/cyrdeliver -e -r ${sender} -m ${extension} ${user}"
:0w
| $INBOX

HOST


Im Postfix habe ich dann in der master.cf folgendes hinzugefügt:

Code: Select all

mailbox_command = procmail -a "$EXTENSION"


Nun ist es so, dass Mail jetzt ankommen, vom Postfix an den Procmail gehen, dort die Prüfung mit dem Spamassassin auch stattfindet, ABER DANN die Auslieferung nicht ab zum Cyrus geht zum entsprechenden User, sonder ganz einfach nach /var/spool/mail/[usermailbox].

Kurzerhand also das Loggin im Procmail angeschmissen und dort steht folgendes:
procmail: [1421] Fri Aug 3 13:45:21 2007
procmail: Executing "/usr/bin/formail,-I,From "
procmail: [1421] Fri Aug 3 13:45:21 2007
procmail: Match on "< 110000"
procmail: Executing "/usr/bin/spamc,-u,filter"
procmail: [1421] Fri Aug 3 13:45:38 2007
procmail: No match on "^X-Spam-Level: ***************"
procmail: Assigning "INBOX=/usr/sbin/cyrdeliver -e -r -m "
procmail: Executing "/usr/sbin/cyrdeliver,-e,-r,-m"
421-4.3.0 usage: deliver [-C <alt_config> ] [-m mailbox] [-a auth] [-r return_path] [-l] [-D]^M
421 4.3.0 v2.1.18-IPv6-Debian-2.1.18-5.1
procmail: Error while writing to "/usr/sbin/cyrdeliver"
procmail: Program failure (75) of "/usr/sbin/cyrdeliver"

procmail: Assigning "LASTFOLDER=/usr/sbin/cyrdeliver -e -r -m"
procmail: Assigning "HOST"
procmail: HOST mismatched "lorddarkmage"
procmail: Assigning "PATH=/home/lastpegasus/bin:/usr/local/bin:/usr/bin:/bin"
procmail: Locking "/var/mail/lastpegasus.lock"
procmail: Assigning "LASTFOLDER=/var/mail/lastpegasus"
procmail: Opening "/var/mail/lastpegasus"
procmail: Acquiring kernel-lock
procmail: Unlocking "/var/mail/lastpegasus.lock"
procmail: Notified comsat: "lastpegasus@11791:/var/mail/lastpegasus"
Subject: Say "I can have sex all night long"!
Folder: /var/mail/lastpegasus 5158


In einem Forum habe ich dann gelesen, dass in die master.cf noch folgendes rien soll und procmail als User cyrus laufen soll:

Code: Select all

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


Trotzdem bekomme ich es nicht hin, dass die Mails in die Postfächer von Cyrus gehen. Es ist zum verzweifeln.

Jemand eine Idee wo der Fehler liegt?

Gruß
LordDarkmage

suntzu
RSAC
Posts: 698
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: Procmail liefert nicht an Cyrus aus

Post by suntzu » 2007-08-03 15:43

Abgesehen davon, dass das von rechtlicher Seite (davon ausgehend, dass es nicht nur privat für dich ist) nicht wirklich sicher ist (siehe auch http://www.rootforum.org/forum/view ... hp?t=46693 ) solltest du erstmal überlegen, evtl. policyd-weight (http://www.policyd-weight.org/ ) einzusetzen, das senkt das zu verarbeitende Spam-Aufkommen erheblich.

lorddarkmage
Posts: 36
Joined: 2006-10-26 05:57

Re: Procmail liefert nicht an Cyrus aus

Post by lorddarkmage » 2007-08-03 16:18

Erstmal ein Dankeschön für den Tip. Werd ich mir ansehen.

Aber was die Löschung dieser Mails angeht so bin ich mir in Klaren was ich da machen möchte. Da es für mich selbst ist und niemand sonst diesen Server nutzt, muss ich auch niemanden um Erlaubnis fragen.

Weiterhin steht die Frage nach Hilfe zu dem Problem.

Danke im Vorraus.

Gruß
LordDarkmage

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Procmail liefert nicht an Cyrus aus

Post by Roger Wilco » 2007-08-03 18:49

procmail liefert die Mails an cyrdeliver. Nur cyrdeliver steigt mit einem Fehler aus. Du solltest in deinen Logs nachsehen, was für ein Fehler das genau ist. Vermutlich einfach falsche Parameter (siehe Fehlermeldung in deinem Log). Bist du z. B. sicher, dass ${sender}, ${extension} und ${user} korrekt gefüllt sind? ;)

Davon abgesehen würde ich eher Sieve benutzen, um die Mails auszusortieren oder zu löschen. Dann sparst du dir das Geraffel mit procmail.

flo
RSAC
Posts: 2297
Joined: 2002-07-28 13:02
Location: Berlin

Re: Procmail liefert nicht an Cyrus aus

Post by flo » 2007-08-05 22:01

Code: Select all

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


hat bei mir mal funktioniert ...

Aber das Filtern per Sieve ist wesentlich performanter und ressourcenschonender als per procmail.

dazu in der min.cf:

Code: Select all

mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp


und in der cyrus.conf

Code: Select all

lmtpunix        cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=0 maxchild=20


in der imapd.conf:

Code: Select all

lmtpsocket: /var/run/cyrus/socket/lmtp


wichtig ist (beim Socket) noch, daß der Postfix darauf schreiben darf.