PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sieve - wird nicht ausgefuehrt



muell200
24.07.08, 14:38
hallo

system: opensuse, cyrus 2.2.12-13

ich habe jetzt mit thunderbird ein sieve script erstellt.
das script aktiviert, doch leider wird das nicht nicht ausgefuehrt.
wo koennte der fehler sein.

das script liegt auf dem server

ls -l /var/lib/sieve/u/user/


total 8
drwx------ 2 cyrus mail 144 Jul 24 14:32 .
drwxr-x--- 3 cyrus mail 72 Jul 22 16:51 ..
lrwxrwxrwx 1 cyrus mail 12 Jul 24 14:32 defaultbc -> testsieve.bc
-rw------- 1 cyrus mail 112 Jul 24 14:32 testsieve.bc
-rw------- 1 cyrus mail 97 Jul 24 14:32 testsieve.script


mit sieveshell sehe ich, dass das script aktiviert ist.

sieveshell --user=user --authname=user imap-server


> list
testsieve <- active script


email header:


X-Sieve: CMU Sieve 2.2


das script zum testen:


require ["fileinto" ];

if address :domain :is "from" "gmx.de" {
fileinto "testordner" ;
}


was ist noch wichtig?
hat jemand einen tip?

Roger Wilco
24.07.08, 14:56
Wie sehen die ACL für "testordner" aus?

Und fehlt da nicht ein "INBOX." oder "INBOX/" davor? Außer natürlich, du hast ihn auf der korrekten Ebene angelegt.

muell200
24.07.08, 15:13
Wie sehen die ACL für "testordner" aus?

Und fehlt da nicht ein "INBOX." oder "INBOX/" davor? Außer natürlich, du hast ihn auf der korrekten Ebene angelegt.

der ordner ist in der obersten ebene



lam testordner
all lrswipcda
anyone lrs


die filterung stimmt auch?

if address :domain :is "from" "gmx.de" {

bedeutet doch: die regel auf alle email von gmx.de anwenden. oder?

kann ich das script auf den server testen?
oder hast du mir ein einfaches script was 100% funktioniert
z.b.: auf alle email in den header was schreiben,...

Roger Wilco
24.07.08, 15:33
Gib 'anyone' noch das Post-Recht ('p') und ggf. je nach Anforderung vielleicht auch das Insert-Recht ('i').

muell200
24.07.08, 15:59
Gib 'anyone' noch das Post-Recht ('p') und ggf. je nach Anforderung vielleicht auch das Insert-Recht ('i').

ohne erfolg

ich habe mal fileinto durch redirect emailadresse ersetzt.
-> sieve wird ignoriert.

dann habe ich anstatt mit thunderbird ein script mit sieveshell auf den server kopiert und aktiert -> ohne verbesserung

wo koennte der fehler sein?
-> gibt es keine debug moeglichkeit von sieve?

muell200
24.07.08, 16:57
fehler gefunden:
postfix leitet die email "falsch" weiter

alter eintrag:
main.cf


mailbox_transport =


neuer eintrag:


mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp


jetzt ist aber das problem, das der spamfilter nich mehr funktioniert
der spamfilter wird ueber /etc/procmail aufgerufen.

lmtp leitet die email an - sieve - dann ??? - dann wird die email dem user zugewiesen

wie schalte ich procmail wieder dazwischen?

Theo Retisch
24.07.08, 18:39
Normalerweise reicht es, für LMTP in der master.cf folgende Einstellung vorzunehmen.

# service type private unpriv chroot wakeup maxproc command + args
lmtp unix - - n - - lmtp

Sollten vacation-Befehle oder Rejects nicht funktionieren, überprüfe zusätzlich einmal die imapd.conf auf folgende Zeilen:

sievedir: /var/lib/sieve
sieveusehomedir: false
sendmail: /usr/sbin/sendmail

Wenn der Eintrag in der master.cf nicht funktionieren sollte, poste bitte einmal Deine Konfiguration.

Roger Wilco
25.07.08, 01:33
wie schalte ich procmail wieder dazwischen?
Einstellungen für $mailbox_transport so wie vorher setzen und dann die Mails aus procmail heraus via cyrdeliver (oder deliver) zustellen.

muell200
25.07.08, 10:18
Einstellungen für $mailbox_transport so wie vorher setzen und dann die Mails aus procmail heraus via cyrdeliver (oder deliver) zustellen.

genau so mache ich es.

/etc/procmailrc


DELIVERMAIL="/usr/lib/cyrus/bin/deliver"
IMAP="$DELIVERMAIL -e -a $LOGNAME -m user.$LOGNAME"

....

# zustellung in die INBOX des users:
#
:0 w
| /bin/sed 1d | $IMAP

:0 e
{ EXITCODE=75 HOST }


wie gesagt, mit dieser einstellung wird sieve ignoriert
( "mailbox_transport = ")



Wenn der Eintrag in der master.cf nicht funktionieren sollte, poste bitte einmal Deine Konfiguration.


funktioniert leider nicht

master.conf



smtp inet n - n - - smtpd
-o content_filter=lmtp:127.0.0.1:10030
pickup fifo n - n 60 1 pickup
-o content_filter=lmtp:127.0.0.1:10030
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o fallback_relay=
showq unix n - n - - showq
error unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
cyrus unix - n n - - pipe
user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
procmail unix - n n - - pipe
flags=R user=cyrus argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient}
127.0.0.1:10030 inet n n n - 20 spawn
user=kluser argv=/opt/kav/5.5/kav4mailservers/bin/smtpscanner
127.0.0.1:10031 inet n - n - 21 smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o myhostname=fs4




main.cf


mailbox_command = /usr/bin/procmail
mailbox_transport =


alternative kann ich procmail abschalten, dann sollte aber sieve die email durch spamassassin jagen.
geht das?

wie ist der korrekte weg?

fetchmail - postfix - sieve - procmail - spamassassin - procmail - user-email konto

oder?

muell200
25.07.08, 14:03
fetchmail - postfix - sieve - procmail - spamassassin - procmail - user-email konto


habe eine "loesung" gefunden.

ich aktiviere im postfix spamassassin

maister.cf



smtp inet n - n - - smtpd -o content_filter=spamassassin
...
spamassassin
unix - n n - - pipe
user=user argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}