sa-learn per Email füttern

Zwischen drin noch mal ne kleine >Gewissensfrage<:
Wenn der Assassine Spam erkennt, schickt er mir den ja immer als Anhang in einer Email mit dem Betreff *****SPAM*****.
Was passiert, wenn ich diese Email mit der Email darin dann an sa-learn schicke? Lernt der dann das, was er selbst geschrieben hat, (nicht) als Spam zu erkennen oder wirklich nur die Email im Anhang des Anhangs?
 
Irgendwo auf den letzten 10 Seiten hatte schon mal jemand diese Frage gestellt. Die Antwort ist und bleibt: Alles was als Anhang an der Email an spam@... hängt wird gelernt. Wenn Du SA also immer noch im Report-Modus laufen hast, dann wird auch der Report als Anhang geschickt und gelernt.

Lösung: Den Report abschalten und nur die ***SPAM*** ins Subjekt schreiben.

huschi.
 
Ich versuche momentan Postfix zusammen mit SpamAssassin und der sa-wrapper.pl zu benutzen, allerdings bisher ohne Erfolg. Es scheint so, als wenn die Datei nie aufgerufen wird. Wenn ich eine Mail an spam@meineDomain.de schicke wird diese einfach nur in dieses Postfach ausgeliefert.

Meine postfix master.cf sieht wie folgt aus:

Code:
smtp	  inet	n	-	n	-	-	smtpd
#smtps	  inet	n	-	n	-	-	smtpd
#  -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission	inet	n	-	n	-	-	smtpd
#  -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628	  inet	n	-	n	-	-	qmqpd
pickup	  fifo	n	-	n	60	1	pickup
cleanup	  unix	n	-	n	-	0	cleanup
qmgr	  fifo	n	-	n	300	1	qmgr
#qmgr	  fifo	n	-	n	300	1	nqmgr
#tlsmgr   fifo  -       -       n       300     1       tlsmgr
rewrite	  unix	-	-	n	-	-	trivial-rewrite
bounce	  unix	-	-	n	-	0	bounce
defer	  unix	-	-	n	-	0	bounce
flush	  unix	n	-	n	1000?	0	flush
proxymap  unix	-	-	n	-	-	proxymap
smtp	  unix	-	-	n	-	-	smtp
relay	  unix	-	-	n	-	-	smtp
#	-o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix	n	-	n	-	-	showq
error     unix	-	-	n	-	-	error
local	  unix	-	n	n	-	-	local
virtual	  unix	-	n	n	-	-	virtual
lmtp	  unix	-	-	n	-	-	lmtp
127.0.0.1:10025 inet	n	-	n	-	-	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 smtpd_recipient_restrictions=permit_mynetworks,reject
   -o mynetworks=127.0.0.0/8,[::1]/128
   -o smtpd_error_sleep_time=0
   -o smtpd_soft_error_limit=1001
   -o smtpd_hard_error_limit=1000
   -o smtpd_client_connection_count_limit=0
   -o smtpd_client_connection_rate_limit=0

   -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

#
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# maildrop. See the Postfix MAILDROP_README file for details.
#
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
vscan     unix  -       n       n       -       10       pipe
  flags=O 
  user=vscan argv=/usr/sbin/amavis ${sender} ${recipient}
procmail  unix  -       n       n       -       -       pipe
  flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} ${user}
smtp-amavis	unix	-	-	n	-	2	smtp
     -o smtp_data_done_timeout=1800
     -o disable_dns_lookup=yes
     -o smtp_send_xforward_command=yes
     -o max_use=20 

trace	  unix	-	-	n	-	0	bounce
verify	  unix	-	-	n	-	1	verify
anvil	  unix	-	-	n	-	1	anvil
scache	  unix	-	-	n	-	1	scache
discard	  unix	-	-	n	-	-	discard
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
sa-spam	unix	-	n	n	-	-	pipe user=vscan:vcsan argv=/usr/local/bin/sa-wrapper.pl spam ${sender}
sa-ham	unix	-	n	n	-	-	pipe user=vscan:vscan argv=/usr/local/bin/sa-wrapper.pl ham  ${sender}

Desweiteren befinden sich in meiner Postfix-Aliases
Code:
spam:		spam@spam.spam
ham:		ham@ham.ham

und in der transport:
Code:
spam.spam	sa-spam:
ham.ham		sa-ham:

Danke für jede Hilfe,

Susanne
 
Wühlen trifft wirklich zu....könnte es daran liegen:

Code:
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: rewrite_clnt: local: spam@meineDomain.de -> spam@meineDomain.de
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: send attr request = resolve
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: send attr sender = 
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: send attr address = spam@meineDomain.de
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: private/rewrite socket: wanted attribute: flags
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: input attribute name: flags
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: input attribute value: 0
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: private/rewrite socket: wanted attribute: transport
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: input attribute name: transport
Jul  3 17:40:54 hxxxxxx postfix/smtpd[12780]: input attribute value: error

Wird evtl. meine transportmap nicht verwendet? oder meint der Eintrag was anderes?
 
Last edited by a moderator:
Danke erstmal für Deine Mühe. Also: das Perl-Skript hat keinen Syntax-Fehler. Die Benutzerrechte sind wie ich das sehe auch korrekt. Ich habe das Gefühl, der führt diesen Punkt in der master.cf gar nicht aus, so dass das perl-skript gar nicht aufgerufen wird.

Hier mal etwas mehr von dem Logging:

Code:
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: < i577B83DA.versanet.de[xx.xx.xx.xx]: RCPT TO: <spam@meineDomain.de>
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: extract_addr: input: <spam@meineDomain.de>
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: smtpd_check_addr: addr=spam@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr request = rewrite
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr rule = local
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr address = spam@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: flags
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: flags
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: 0
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: address
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: address
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: spam@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: (list terminator)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: (end)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: rewrite_clnt: local: spam@meineDomain.de -> spam@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr request = resolve
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr sender = 
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr address = spam@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: flags
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: flags
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: 0
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: transport
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: transport
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: error
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: nexthop
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: nexthop
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: User unknown in virtual alias table
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: recipient
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: recipient
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: spam@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: flags
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: flags
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: 512
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: (list terminator)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: (end)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: resolve_clnt: `' -> `spam@meineDomain.de' -> transp=`error' host=`User unknown in virtual alias table' rcpt=`spam@meineDomain.de' flags= class=alias
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: ctable_locate: install entry key spam@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: extract_addr: in: <spam@meineDomain.de>, result: spam@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr request = rewrite
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr rule = local
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr address = postmaster
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: flags
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: flags
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: 0
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: address
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: address
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: postmaster@mailserver.meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: private/rewrite socket: wanted attribute: (list terminator)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: (end)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: rewrite_clnt: local: postmaster -> postmaster@mailserver.meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: >>> START Sender address RESTRICTIONS <<<
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: generic_checks: name=hash:/etc/postfix/access
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: check_mail_access: ich@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: ctable_locate: move existing entry key ich@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: check_access: ich@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: check_domain_access: meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: check_access: ich@
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: generic_checks: name=check_sender_access status=0
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: >>> END Sender address RESTRICTIONS <<<
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: >>> START Recipient address RESTRICTIONS <<<
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: generic_checks: name=permit_sasl_authenticated
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: generic_checks: name=permit_sasl_authenticated status=1
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: >>> CHECKING RECIPIENT MAPS <<<
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: ctable_locate: move existing entry key spam@meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: maps_find: recipient_canonical_maps: spam@meineDomain.de: not found
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: match_string: meineDomain.de ~? mailserver.meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: match_string: meineDomain.de ~? localhost.meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: match_list_match: meineDomain.de: no match
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: maps_find: recipient_canonical_maps: @meineDomain.de: not found
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: mail_addr_find: spam@meineDomain.de -> (not found)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: maps_find: canonical_maps: spam@meineDomain.de: not found
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: match_string: meineDomain.de ~? mailserver.meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: match_string: meineDomain.de ~? localhost.meineDomain.de
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: match_list_match: meineDomain.de: no match
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: maps_find: canonical_maps: @meineDomain.de: not found
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: mail_addr_find: spam@meineDomain.de -> (not found)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: maps_find: virtual_alias_maps: hash:/etc/postfix/confixx_virtualUsers(0,lock|fold_fix): spam@meineDomain.de = web3p7
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: mail_addr_find: spam@meineDomain.de -> web3p7
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: smtpd_check_rewrite: trying: permit_inet_interfaces
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: permit_inet_interfaces: i577B83DA.versanet.de xx.xx.xx.xx
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: before input_transp_cleanup: cleanup flags = enable_header_body_filter enable_automatic_bcc enable_address_mapping
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: after input_transp_cleanup: cleanup flags = enable_header_body_filter
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: connect to subsystem public/cleanup
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: public/cleanup socket: wanted attribute: queue_id
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: queue_id
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute value: 228675D8003
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: public/cleanup socket: wanted attribute: (list terminator)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: input attribute name: (end)
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: send attr flags = 2
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: 228675D8003: client=i577B83DA.versanet.de[xx.xx.xx.xx], sasl_method=LOGIN, sasl_username=web3p3
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: > i577B83DA.versanet.de[xx.xx.xx.xx]: 250 2.1.5 Ok
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: < i577B83DA.versanet.de[xx.xx.xx.xx]: DATA
Jul  4 10:16:04 hxxxxxx postfix/smtpd[23100]: > i577B83DA.versanet.de[xx.xx.xx.xx]: 354 End data with <CR><LF>.<CR><LF>
Jul  4 10:16:04 hxxxxxx postfix/cleanup[23103]: 228675D8003: message-id=<002201c7be13$9f3141d0$0300a8c0@bigfoot>
Jul  4 10:16:05 hxxxxxx postfix/smtpd[23100]: public/cleanup socket: wanted attribute: status
Jul  4 10:16:05 hxxxxxx postfix/qmgr[23093]: 228675D8003: from=<ich@meineDomain.de>, size=37887, nrcpt=1 (queue active)
Jul  4 10:16:05 hxxxxxx postfix/smtpd[23100]: input attribute name: status
Jul  4 10:16:05 hxxxxxx postfix/smtpd[23100]: input attribute value: 0
Jul  4 10:16:05 hxxxxxx postfix/smtpd[23100]: public/cleanup socket: wanted attribute: reason
Jul  4 10:16:05 hxxxxxx postfix/smtpd[23100]: input attribute name: reason
Jul  4 10:16:05 hxxxxxx postfix/smtpd[23100]: input attribute value: (end)
Jul  4 10:16:05 hxxxxxx postfix/smtpd[23100]: public/cleanup socket: wanted attribute: (list terminator)
Jul  4 10:16:05 hxxxxxx postfix/smtpd[23100]: input attribute name: (end)
Jul  4 10:16:05 hxxxxxx postfix/smtpd[23100]: > i577B83DA.versanet.de[xx.xx.xx.xx]: 250 2.0.0 Ok: queued as 228675D8003
 
Die Benutzerrechte sind wie ich das sehe auch korrekt.
Zitat: "4 Augen sehen mehr als 2."

input attribute name: transport
input attribute value: error
...
input attribute value: User unknown in virtual alias table
...
resolve_clnt: `' -> `spam@meineDomain.de' -> transp=`error' host=`User unknown in virtual alias table' rcpt=`spam@meineDomain.de' flags= class=alias
Die ersten zwei Zeilen sind wichtig. Der Rest entsteht als Folgefehler.
Ich vermute daher, daß er die Transport-Anweisungen nicht schluckt.
Wie sehe die denn nun konkret aus? Hast Du auch einen postmap drüber laufen lassen?
Kommt der obere Fehler im Logfile auch dann wenn Du an eine andere Email-Adresse ne Email schickst?

huschi.
 
Zitat: "4 Augen sehen mehr als 2."
Ich habe die Rechte für die sa-wrapper.pl schon auf root:root als auch auf vscan:vscan gesetzt. Habe u.a. gerade noch bemekrt, dass ich den gruppennamen vscan in der master.cf falsch geschrieben hatte.
Die ersten zwei Zeilen sind wichtig. Der Rest entsteht als Folgefehler.
Ich vermute daher, daß er die Transport-Anweisungen nicht schluckt.
Wie sehe die denn nun konkret aus? Hast Du auch einen postmap drüber laufen lassen?
Kommt der obere Fehler im Logfile auch dann wenn Du an eine andere Email-Adresse ne Email schickst?
Ja, der Transport-Fehler kommt immer. konkret sieht meine transport so aus:

Code:
spam@meineDomain.de sa-spam:
ham@meineDomain.de sa-ham:

postmap transport habe ich gemacht, genauso postfix reload, rcpostfix reload....

Ich verstehe das nicht, der müsste mir doch zumindest irgendwo noch einen Fehler melden.
 
Tja, das einzige was mir jetzt noch einfällt ist, die Gruppe bei "user=" weg zulassen oder das evtl. doch das Script nicht richtig funzt. Welche Version hast Du denn woher gezogen?

huschi.
 
Die Gruppe habe ich auch schon weggelassen. Ich verwende folgendes Skript:
Code:
#!/usr/bin/perl -w
# Time-stamp: <05 April 2004, 13:37 home>
#
# sa-wrapper.pl
#
# SpamAssassin sa-learn wrapper
# (c) Alexandre Jousset, 2004
# This script is GPL'd
#
# Thanks to: Chung-Kie Tung for the removal of the dir
#            Adam Gent for bug report
#
# v1.2

use strict;
use MIME::Tools;
use MIME::Parser;

my $DEBUG = 1;
my $UNPACK_DIR = '/var/spool/unpack';
my $SA_LEARN = '/usr/bin/sa-learn';
my @DOMAINS = qw/meineDomain.de neAndereDomain.de/;

my ($spamham, $sender) = @ARGV;

sub recurs
{
    my $ent = shift;

    if ($ent->head->mime_type eq 'message/rfc822') {
	if ($DEBUG) {
	    unlink "/tmp/spam.log.$$" if -e "/tmp/spam.log.$$";
	    open(OUT, "|$SA_LEARN -D --$spamham --single >>/tmp/spam.log.$$ 2>&1") or die "Cannot pipe $SA_LEARN: $!";
	} else {
	    open(OUT, "|$SA_LEARN --$spamham --single") or die "Cannot pipe $SA_LEARN: $!";
	}
    
	$ent->bodyhandle->print(\*OUT);

	close(OUT);
	return;
    }

    my @parts = $ent->parts;

    if (@parts) {
	map { recurs($_) } @parts;
    }
}

my ($domain) = $sender =~ /\@(.*)$/;
unless (grep { $_ eq $domain } @DOMAINS) {
    die "I don't recognize your domain !";
}

if ($DEBUG) {
    MIME::Tools->debugging(1);
    open(STDERR, ">/var/log/sa-learn.log");
}
my $parser = new MIME::Parser;
$parser->extract_nested_messages(0);
$parser->output_under($UNPACK_DIR);

my $entity;
eval {
    $entity = $parser->parse(\*STDIN);
};

if ($@) {
    die $@;
} else {
    recurs($entity);
}

$parser->filer->purge;
rmdir $parser->output_dir;
 
Hallo!

Ich meine mich zu erinnern, daß der folgende Teil im Script auskommentiert werden muß, da er nicht richtig funktioniert

Code:
my ($domain) = $sender =~ /\@(.*)$/;
unless (grep { $_ eq $domain } @DOMAINS) {
    die "I don't recognize your domain !";
}

Gruß flyingoffice
 
Habe ich jetzt mal rausgenommen. Hilft leider auch nicht. Ich vermute, dass es gar nicht erst zu dem Aufruf des Perl-Skriptes kommt, aber ich weiß leider nicht warum, Evtl. ist da noch ein Fehler in meiner master.cf. Ich denke die schaue ich mir erst einmal noch an. Bin aber noch gerne für weitere Ideen offen...
 
Andere Idee? Gerne: Gehe nicht über die Transport-Table.

PS: Du hättest ruhig das modifizierte Script von meiner Page nehmen könne. Das ist im Gegensatz zum Original direkt einsatzbereit.

huschi.
 
Hallo zusammen,

habe Spamassassin 3.2.1 in Plesk 8.1.1 mit dem HOWTOs von Huschi eingebunden und den SA mit E-Mails gefüttert. Die zentrale Bayes DB ist nun mit über 200 Spam und 200 Ham E-Mails voll. Mein Problem ist aber, dass die Bayes Regeln nun gar nicht angwendets werden, es gibt zumindets keine Bayes_ Scores in den E-Mail Kopfzeilen der gescnannten E-Mails. Leider habe ich keinen Fehler selbst entdekct, wäre super, wenn mir jemand von Euch helfen könnte!!! (zentrales AWL scheint übrigens zu funktionieren) Gibt es eine Logfile in der man ein Debugging loogen könnte, das aufzeichnet, wann Bayes wo etwas macht?

Hier meine Konfiguration:

local.cf:
Code:
rewrite_header Subject ****SPAM(_SCORE_)****
required_score 4.7

# http://www.huschi.net/5_212_de.html
# Enable the Bayes system
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
bayes_path /var/spool/spamassassin/bayes
bayes_file_mode 777

/etc/sysconfig/spamd:
Code:
SPAMD_ARGS="-d -c -L -x"

Übrigens wird trotzdem die user_prefs von root noch beachtet, was ich nicht ganz verstehe, da doch spamd mit dem "-x" doch die user_prefs ignorieren sollte.

Die zentrale auto-whitelist entsteht im Verzeichnis /var/qmail/.spamassassin

Ich vermute mal, das insgesamt was nicht mit den ausführenden Benutzer stimmt bzw. mit Benutzerrechten, aber ich kann den Fehler einfach nicht finden.

Noch was:
Code:
sa-learn --dump magic
0.000          0          3          0  non-token data: bayes db version
0.000          0        319          0  non-token data: nspam
0.000          0        201          0  non-token data: nham
0.000          0      46811          0  non-token data: ntokens
0.000          0 1180374259          0  non-token data: oldest atime
0.000          0 1184104276          0  non-token data: newest atime
0.000          0 1184104519          0  non-token data: last journal sync atime
0.000          0          0          0  non-token data: last expiry atime
0.000          0          0          0  non-token data: last expire atime delta
0.000          0          0          0  non-token data: last expire reduction count

Wie ist das eigentlich, wenn ich in der local.cf einen zentralen bayes Pfad angebe, spielt dann der Inahaber der bays DB eine Rolle oder reicht es, wenn alle user Lese- und Schreibrechte haben?

Danke für jede Hilfe, irgendwas übersehe ich!
Killerloop
 
es gibt zumindets keine Bayes_ Scores in den E-Mail Kopfzeilen
Gibt es denn "autolearn"?

bayes_path /var/spool/spamassassin/bayes
Verschiebe die Bayes-DB und diesen Pfad nach /var/qmail/.spamassassin/.

SPAMD_ARGS="-d -c -L -x"
Durch "-x" ist "-c" dann überflüssig.

Übrigens wird trotzdem die user_prefs von root noch beachtet
In wie fern und was steht da drin?

spielt dann der Inahaber der bays DB eine Rolle oder reicht es, wenn alle user Lese- und Schreibrechte haben?
Daher "bayes_file_mode 777".

huschi.
 
Hallo Huschi,

danke für die Hilfe.

Gibt es denn "autolearn"?
Ja, hatte aber noch kein "yes", immer nur "no" und manchmal "failed".

Durch "-x" ist "-c" dann überflüssig.
OK, habe ich noch rausgenommen.

user_prefs von root:
Code:
required_score		5.1

# http://www.huschi.net/5_212_de.html
# Enable the Bayes system
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
bayes_path /var/spool/spamassassin/bayes
bayes_file_mode 777

Da nur hier die Score 5.1 ist, weiss ich, dass diese Datei trotz "-x" noch beachtet wird... Mein Problem existiert aber auch, wenn ich diese Datei lösche.

Verschiebe die Bayes-DB und diesen Pfad nach /var/qmail/.spamassassin/.

OK, habe ich gemacht, zur Kontrolle:
Code:
/var/qmail/.spamassassin # l
insgesamt 6256
drwxrwxrwx  2 root root     4096 2007-07-11 09:26 ./
drwxr-xr-x 12 root qmail    4096 2007-07-02 20:57 ../
-rw-rw-rw-  1 root root  5242880 2007-07-11 09:26 auto-whitelist
-rwxrwxrwx  1 root root    90112 2007-07-11 09:18 bayes_seen*
-rwxrwxrwx  1 root root  1294336 2007-07-11 09:18 bayes_toks*
(Übrigens, habe ich den Inhaber der bayes Dateien im Zuge der Fehlersuche gestern selbst von popuser auf root geändert.)

und local.cf:
Code:
rewrite_header Subject ****SPAM(_SCORE_)****
required_score 4.7

# http://www.huschi.net/5_212_de.html
# Enable the Bayes system
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
#bayes_path /var/spool/spamassassin/bayes
bayes_path /var/qmail/.spamassassin/bayes
bayes_file_mode 777

In den Logs, finde ich nur gelegentlich folgenden Fehler:
Code:
spamd[24401]: auto-whitelist: open of auto-whitelist file failed: locker: safe_lock: cannot create tmp lockfile /var/lib/nobody/.spamassassin/auto-whitelist.lock.h1245678.stratoserver.net.24401 for /var/lib/nobody/.spamassassin/auto-whitelist.lock: Permission denied

Habe spamd neu gestartet und mir Testemails gesendet.

Leider funktioniert noch immer kein Bayes Test, zumindest werden die E-Mails mit keinen Bayes Scores getagt und Spam kommt durch.

Was könnte noch nicht stimmen? Gibt es die Möglichkeit SA noch mehr loggen zu lassen um eine Fehlermeldung zu bekommen?

Danke
Killerloop

PS.: Noch eine Anmerkung. Wenn ich mich recht erinnere, hatte ich schon einmal auf diesem System Bayes Scores laufen (damals aber immer 00 weil ich noch nicht genug Spam und Ham gelernt hatte), das war aber vor ein paar Wochen und noch mit SA 3.1.8. Dazwischen habe ich aber das füttern per E-Mail eingerichtet und SA per Yast von 3.1.8 auf 3.2.1 aufgefrischt.
 
Last edited by a moderator:
Back
Top