[Postfixbuch-users] procmail spamd cyrdeliver cyrus-imap

Holm Kapschitzki holm at x-provi.de
Mi Jun 28 01:56:07 CEST 2006


Holm Kapschitzki schrieb:
> Hallo,
>
> habe hier ein Riesenproblem mit der Mailzustellung. Also Procmail muss 
> Spamd weitergeben und zwar mit dem richtigen Benutzer, da Spamd die 
> userprefs ( z.Bsp. Punkte ab denen er die Mails als Spam markieren soll) 
> aus der Confixx Mysql DB lesen soll, und zwar beutzerspezifisch. Das 
> klappt auch aber nur wenn ich in der main.cf:
>
> mailbox_command = procmail -a "$EXTENSION"
>
> setze. Weiter gehts mit Procmail nach cyrdeliver, bzw Cyrus Imap und 
> genau da ist der Haken. Wenn ich das so aufrufe in der procmailrc:
>
> IMAP="/usr/sbin/cyrdeliver -a $USER -m INBOX $USER"
> :0w
> | $IMAP
>
> findet er die Mailbox nicht:
>
> maillog:
>
> Jun 28 00:59:16 srv4 cyrus/lmtpunix[20511]: accepted connection
> Jun 28 00:59:16 srv4 cyrus/lmtpunix[20511]: lmtp connection preauth'd as 
> postman
> Jun 28 00:59:16 srv4 cyrus/lmtpunix[20511]: verify_user(user.INBOX) 
> failed: Mailbox does not exist
> Jun 28 00:59:16 srv4 postfix/local[20494]: 93272D6514D: 
> to=<web3p2 at example.org>, orig_to=<foo at example.net>, relay=local, 
> delay=1, status=sent (delivered to command: procmail -a "$EXTENSION")
> Jun 28 00:59:16 srv4 postfix/qmgr[20326]: 93272D6514D: removed
> Jun 28 00:59:16 srv4 postfix/smtpd[20490]: disconnect from 
> example.de[xxx.xxx.xxx.xxx]
>
> ich habe in der master.cf:
>
> cyrus     unix  -       n       n       -       -       pipe
>   flags=R user=cyrus argv=/usr/sbin/cyrdeliver -r ${sender} -m 
> ${extension} ${user}
>
> procmail  unix -       n      n      -      -       pipe
>   flags=R user=cyrus argv=/usr/bin/procmail -t -m USER=${user} 
> EXTENSION=${extension} /etc/procmailrc
>
>
> Also irgendwie kommt da was mit dem Benutzer durcheinander.
>
> Ich kann natürlich in der main.cf folgendes schreiben:
>
> mailbox_transport = procmail
>
> Dann bekommt spamd die Mail zwar und arbeitet, aber er bekommt die Mail 
> nicht mit dem richtigen Benutzer, es werden dann keine 
> benutzerspezifischen prefs aus der Confixx DB benutzt. Jetzt findet 
> cyrdeliver, auch die richtige Mailbox und die Mail kommt bei Cyrus-Imap 
> an. Aber das ist ja nicht Sinn der Sache.
>
> Irgendwie scheint mir da was an derprocmailrc falsch zu sein und der 
> Beutzer/Mailboxowner Übergabe oder gibt es noch ne andere Lösung, um von 
> procmail an cyrdeliver, die Mail so zu übertragen, dass sie richtig 
> einsortiert wird und ich trotzdem in der main.cf:
>
> mailbox_command = procmail -a "$EXTENSION"
>
> drin stehen lassen kann ?
>
> Danke und Gruß Holm
>
>
>
>
>
>
>   


es klappt jetzt : procmailrc:

DROPPRIVS=yes
LOGFILE=/var/log/procmail.log
VERBOSE=ON
SHELL=/bin/sh

# Mailbox-Zustellung
DELIVERMAIL="/usr/sbin/cyrdeliver"
IMAP="$DELIVERMAIL -a $LOGNAME -m user.$LOGNAME"

# Spamd Uebergabe
:0fw
* < 256000
| /usr/bin/spamc -f

# From entfernen
:0fw
| formail -f -I "From "

# --- an INBOX zustellen ---
:0w
| $IMAP

Also dieses wars:

# From entfernen
:0fw
| formail -f -I "From "


Allerdings musste ich dem socket irgewendwie alle Rechte geben:

/var/run/cyrus/socket also das dir :
Group:mail /Owner: Cyrus , aber 777

und:

/var/run/cyrus/socket/lmtp:
0777 Group:root /Owner: root

So ganz in Ordnung ist das wohl nicht, aber es funktioniert erstmal.

Gruß Holm












Mehr Informationen über die Mailingliste Postfixbuch-users