PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sieve geht nicht



be1001
24.03.08, 12:36
Hallo,
habe es geschafft das Spams als solche erkannt werden und im Header gekennzeichnet werden. Jetzt wollte ich die Mails über sieve aussieben und und in den Ordner Spam umleiten, sowie Mails über 20MB ablehnen. Sieve siebt aber die Mails nicht aus.
Habe folgende Datei in den Homeverzeichnissen der User und Hochgeladen:
sieve-datei default:

require ["fileinto", "reject" ];

if header :contains "X-Spam-Flag" "YES" {
fileinto "INBOX.spam"; }

elsif header :contains "X-Spam-Level" "****" {
fileinto "INBOX.spam"; }

elsif size :over 20M {
reject "Ihre Mail ist gößer als 20MB und kann daher nicht zugestellt
werden. Legen Sie, wenn möglich große Dateien auf einen Server ab und
senden Sie mir den Link. Vielen Dank"; }

elsif header :contains "from"
["mailings@gmx-gmbh.de", "mailings@gmx.net"] {
discard; }

else { fileinto "INBOX"; }
Meine imap.conf

configdirectory: /var/lib/imap
##partition-default: /var/spool/imap
partition-default: /Chris2/Mailuser
sievedir: /var/lib/sieve
admins: cyrus root postfix
srvtab: /var/lib/imap/srvtab
allowanonymouslogin: no
autocreatequota: 50000
reject8bit: no
quotawarn: 90
timeout: 480
##poptimeout: 10
##dracinterval: 0
##drachost: localhost
sasl_pwcheck_method: auxprop ##sasldb ##auxprop ###
sasl_mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
lmtpsocket: /var/lib/cyrus/socket/lmtp
##lmtp_overquota_perm_failure: no
##lmtp_downcase_rcpt: yes
#
# if you want TLS, you have to generate certificates and keys
#
#tls_cert_file: /usr/ssl/certs/cert.pem
#tls_key_file: /usr/ssl/certs/skey.pem
#tls_ca_file: /usr/ssl/CA/CAcert.pem
#tls_ca_path: /usr/ssl/CA
Header einer Mail:

Return-Path: <jhorne@flowergallery.com>
Received: from mail.beilfuss.org ([unix socket])
by Apache (Cyrus v2.3.8) with LMTPA;
Mon, 24 Mar 2008 13:15:30 +0100
X-Sieve: CMU Sieve 2.3
Received: by mail.beilfuss.org (Postfix)
id 8AE0D178E82; Mon, 24 Mar 2008 13:15:30 +0100 (CET)
Delivered-To: postmaster@beilfuss.org
Received: from mail.beilfuss.org (localhost [127.0.0.1])
by mail.beilfuss.org (Postfix) with ESMTP id 92171178E7E
for <postmaster@beilfuss.org>; Mon, 24 Mar 2008 13:15:29 +0100 (CET)
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.2.3 (2007-08-08) on Apache.cdo
X-Spam-Level: *******************************
X-Spam-Status: Yes, score=31.2 required=6.0 tests=BAYES_99,
DATE_IN_FUTURE_12_24,FH_HELO_EQ_D_D_D_D,HELO_DYNAM IC_IPADDR,HTML_MESSAGE,
RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_PBL,RCVD_IN_SORBS_D UL,RCVD_IN_XBL,RDNS_DYNAMIC,
URIBL_AB_SURBL,URIBL_BLACK,URIBL_JP_SURBL,URIBL_OB _SURBL,URIBL_PH_SURBL,
URIBL_RHS_DOB,URIBL_SBL,URIBL_SC_SURBL,URIBL_WS_SU RBL autolearn=spam
version=3.2.3
X-Spam-Report:
* 6.5 BAYES_99 BODY: Bayesian spam probability is 99 to 100%
* [score: 1.0000]
* 0.0 FH_HELO_EQ_D_D_D_D Helo is d-d-d-d
* 2.4 HELO_DYNAMIC_IPADDR Relay HELO'd using suspicious hostname (IP addr
* 1)

Roger Wilco
24.03.08, 12:41
Hast du das Sieve-Skript auch mit sieveshell oder einem anderen Sieve-Client dem timsieved übergeben und das Skript danach aktiviert?

Die Regel mit der Ablehnung von E-Mails >20MB ist übrigens einigermaßen unnütz. Zum Zeitpunkt, zu dem das Sieve-Skript greift, hat dein MTA die E-Mail schon längst angenommen.

be1001
24.03.08, 12:51
hallo,

habe mich mit "sieveshell localhost" angemeldet, und mit "put default" das skript geladen. Danach mit "activate default" das Skript aktiviert.
"list" zeigt das Skipt auch an.

Wenn ich unter /var/lib/sieve/b/be1001/ nachschaue finde ich auch für den user be1001 ein "default.script.

Was kann ich noch prüfen??

be1001
24.03.08, 14:36
Ich kann eintragen im Script was ich will Cyrus schiebnt die Mail immer ins Postfach von be100103; sieve arbeitet nicht.

Telnet localhost sieve ist o.k.

Aber das Script wird nicht abgearbeitet.


Kann man das Script irgendwie testen?
Zum Test habe ich ein MiniScript geschrieben, aber auch das wird nicht abgearbeitet:

wenn ich ein script aktiviere, wird es unter /var/lib/sieve//b/be100103 für den user be100103 abgelegt.



Mein MiniScript:

require ["fileinto", "reject" ];


if header :contains "from"

["info@xxx.eu"] {

fileinto "user.be100101"; }



else { fileinto "INBOX"; }

Was kann ich noch tun????

be1001
27.03.08, 11:28
Ich kann eintragen im Script was ich will Cyrus schiebnt die Mail immer ins Postfach von be100103; sieve arbeitet nicht.

Telnet localhost sieve ist o.k.

Aber das Script wird nicht abgearbeitet.


Kann man das Script irgendwie testen?
Zum Test habe ich ein MiniScript geschrieben, aber auch das wird nicht abgearbeitet:

wenn ich ein script aktiviere, wird es unter /var/lib/sieve//b/be100103 für den user be100103 abgelegt.



Mein MiniScript:

require ["fileinto", "reject" ];


if header :contains "from"

["info@xxx.eu"] {

fileinto "user.be100101"; }



else { fileinto "INBOX"; }

Was kann ich noch tun????

--------------------------------------------------------------------------------
Geändert von be1001 (Heute um 12:26 Uhr).

be1001
27.03.08, 12:17
Hallo,

hab das Script nochmal verändert, es arbeitet trotzdem nicht.


require ["fileinto", "reject" ];


if allof (address :contains "from" "info@xxxx.eu") {
fileinto "user.be100101"; }

else { fileinto "INBOX"; }

Die Nachricht landet in der Mailbox von be100103 an den sie auch gesand war.

Thorashh
27.03.08, 14:11
Probier mal folgendes.

require "fileinto";
if header :contains "subject" "Test" {
fileinto "INBOX.Test";
stop;
}
keep; Das "keep;" am Ende ist implizit vorhanden und könnte auch entfallen.

Neben dem /var/lib/sieve//b/be100103/default.script muss es auch noch eine /var/lib/sieve//b/be100103/default.bc geben und einen Link defaultbc, der auf die default.bc zeigt.

be1001
31.03.08, 09:54
Hallo,

die Files sind alle vorhanden, aber die Mail verden immer noch nicht gesiebt.
Anbei ein Print vom Skript und das entsprechen Print vom Maillog:
Vielleicht kann ja jemand daraus mein Problem ablesen.
Christian


require "fileinto";


if header :contains "subject" "Test0033" {
fileinto "INBOX.user.be100101";
stop;
}


Mar 31 10:48:42 Apache postfix/cleanup[16907]: CF0E5178E91: message-id=<01a801c8930c$03de9ab0$82ae1dac@Inspiron9400>
Mar 31 10:48:42 Apache postfix/qmgr[3463]: CF0E5178E91: from=<info@beilfuss.eu>, size=26679, nrcpt=1 (queue active)
Mar 31 08:48:42 Apache postfix/smtpd[16919]: disconnect from unknown[127.0.0.1]
Mar 31 10:48:42 Apache amavis[15477]: (15477-05) Passed CLEAN, [87.193.189.127] <info@beilfuss.eu> -> <be100103@beilfuss.org>, Message-ID: <01a801c8930c$03de9ab0$82ae1dac@Inspiron9400>, mail_id: ZMLLBImYg5cz, Hits: -, size: 26244, queued_as: CF0E5178E91, 2345 ms
Mar 31 10:48:42 Apache postfix/smtp[16911]: 2417A178E90: to=<be100103@beilfuss.org>, relay=127.0.0.1[127.0.0.1]:10024, delay=2.9, delays=0.55/0.02/0/2.3, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as CF0E5178E91)
Mar 31 10:48:42 Apache postfix/qmgr[3463]: 2417A178E90: removed
Mar 31 10:48:43 Apache postfix/smtpd[16926]: connect from localhost[127.0.0.1]
Mar 31 10:48:43 Apache postfix/smtpd[16926]: 03450178E90: client=localhost[127.0.0.1]
Mar 31 10:48:43 Apache spampd[15289]: processing message <01a801c8930c$03de9ab0$82ae1dac@Inspiron9400> for <be100103@beilfuss.org> ORCPT=rfc822;be100103@beilfuss.org
Mar 31 10:48:43 Apache spampd[15289]: clean message <01a801c8930c$03de9ab0$82ae1dac@Inspiron9400> (3.09/6.00) from <info@beilfuss.eu> for <be100103@beilfuss.org> ORCPT=rfc822;be100103@beilfuss.org in 0.42s, 26679 bytes.
Mar 31 10:48:43 Apache postfix/cleanup[16907]: 03450178E90: message-id=<01a801c8930c$03de9ab0$82ae1dac@Inspiron9400>
Mar 31 10:48:43 Apache postfix/qmgr[3463]: 03450178E90: from=<info@beilfuss.eu>, size=27093, nrcpt=1 (queue active)
Mar 31 10:48:43 Apache postfix/smtpd[16926]: disconnect from localhost[127.0.0.1]
Mar 31 10:48:43 Apache postfix/smtp[16911]: CF0E5178E91: to=<be100103@beilfuss.org>, relay=127.0.0.1[127.0.0.1]:10026, delay=0.75, delays=0.12/0.01/0.03/0.58, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 03450178E90)
Mar 31 10:48:43 Apache postfix/qmgr[3463]: CF0E5178E91: removed
Mar 31 10:48:43 Apache postfix/lmtp[16935]: 03450178E90: to=<be100103@beilfuss.org>, relay=mail.beilfuss.org[public/lmtp], delay=0.76, delays=0.58/0.02/0.02/0.15, dsn=2.1.5, status=sent (250 2.1.5 Ok)
Mar 31 10:48:43 Apache postfix/qmgr[3463]: 03450178E90: removed
Mar 31 10:52:00 Apache postfix/anvil[16899]: statistics: max connection rate 1/60s for (smtp:212.89.96.7) at Mar 31 10:48:39
Mar 31 10:52:00 Apache postfix/anvil[16899]: statistics: max connection count 1 for (smtp:212.89.96.7) at Mar 31 10:48:39
Mar 31 10:52:00 Apache postfix/anvil[16899]: statistics: max cache size 1 at Mar 31 10:48:39

be1001
01.04.08, 00:36
Hallo,

wenn ich es nach vielem Googeln richtig verstanden habe wird die Mail über den Eintrag in der master.cf:
localhost:10027 inet n - n - - smtpd -o content_filter=
an cyrus übergeben.
Wenn ich es richtig auslege sollte der Eintrag content_filter= das Sievescript aktivieren.
Nachdem ich in den Messages keine Fehlermeldung mehr bekomme sollte der Eintag der fileinto Usermailbox "user.be10010" auch richtig sein.
Trotzdem wird das Script:

require "fileinto";

if header :contains "subject" "Test0033" {
fileinto "user.be100101";
stop;
}
nicht ausgeführt.

Thorashh
01.04.08, 01:19
Nein. Über Contentfilter schickst Du die Mails an einen externen Scanner (z.B.: Amavis). Im übrigen hat Postfix überhaupt nichts mit Sieve zu tun.

Wie läßt Du denn die Mails von Postfix an den Cyrus-imapd ausliefern?

be1001
01.04.08, 07:34
Postfix bekommt die Mails auf Port 25 und übergibt Sie auf Port 10024 an AMaVIS.
AMaVIs liefert an Port 10025 aus und übergibt an Port 10026 an Spampd.
Spampd liefert an Port 10027 an Cyrus.
Mails die ankommen haben im Header auch Einträge von AMaVIS und Spampd. Das sollte also funktioniern. Nur das Aussieben danach funktioniert nicht.