amavisd-new markiert SPAM nicht im header

ww

Well-Known Member
Hallo zusammen,

amavisd-new (+ postfix) erkennt zwar SPAM, überschreibt aber nicht den Header der Mail.

/var/log/maillog:
May 21 14:59:53 laura amavis[499]: (00499-01) Passed SPAM, [60.39.70.100] [60.39.70.100] <rsqlrfobe@yahoo.com> -> <privat@mkg-wiesbaden.de>, Message-ID: <20050521125947.577D23A3824@laura.mainlink1.de>, mail_id: KgKhytSYi3OS, Hits: 8.471, 840 ms
May 21 14:59:53 laura postfix/smtp[1381]: 577D23A3824: to=<privat@mkg-wiesbaden.de>, relay=127.0.0.1[127.0.0.1], delay=6, status=sent (250 2.6.0 Ok, id=00499-01, from MTA([127.0.0.1]:10025): 250 Ok: queued as 337663A3825)

Es ist von mir gewünscht, daß SPAM durchgelassen wird; er soll aber unbedingt markiert werden (was nicht passiert).

In amavisd.conf:
$sa_tag_level_deflt = 0.0; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 4.0; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 10.0; # triggers spam evasive actions
$sa_spam_subject_tag = '***SPAM*** ';


Irgendwelche Ideen, was ich hier übersehen habe?

Danke,
Wolfgang
 
Hallo Ice,

vielen Dank für Deinen Tipp. Kannst Du noch bitte sagen, wo ich die '@local_domains_acl' finde?

Danke,
Wolfgang
 
Sollte nach folgendem Beispiel in der amavisd.conf stehen (sonst: einfach eintragen):
Code:
@local_domains_acl = qw/
bsdforen.de
freebsd.org
/;
 
Du solltest diese Variable eigentlich in Deiner amavisd.conf finden können.
Allerdings heißt die bei mir
@local_domains_maps
und steht per default auf
Code:
#@local_domains_maps = ( [".$mydomain"] );
Vielleicht nochmal zum besseren Verständnis:

Wenn Du nur eine einzelne Domäne hast, dann musst Du "nur" sicherstellen, dass die Domain in amavis und in postfix übereinstimmen.
Code:
/usr/local/etc/amavisd.conf:
$mydomain = 'example.com';
/usr/local/etc/postfix/main.cf
mydomain = example.com

Hoffe, das hilft Dir weiter.

Gruß,

Ice
 
Ah, danke Leute, das war´s. Zumindest provisorisch, denn ich habe die User/Domains in eine MySQL-Tabelle gestopft und kann nicht direkt daraus lesen, sondern muß sie manuell in die amavisd.conf eintragen. Some rtfm willl help...

Danke,
Wolfgang
 
Wenn Du das gefunden hast, dann gib es bitte kurz an mich weiter, denn genau das müsste ich mir auch noch raussuchen.... ;)

Gruß,

Ice
 
Hi Ice,

leider geht so etwas hier nicht:


@local_domains_maps = ( mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf);


Ich denke, man müßte per cronjob eine sql_query losschicken und das Ergebnis in eine Datei schreiben, die wiederum von amavisd-new gehasht wird. Irgendwie blöd...
 
hier mein skript

Code:
#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb
import os
import socket
from os.path import join
import sys

# maildir configuration
PATH="/www/mail/"
DB_ROW_DIR = 8

# lookup configuration
LOOKUP_FILE="/var/amavis/local_domains_acl"


MAILDIRMAKE = "/bin/mkdir"
DB_HOST = "localhost"
DB_DBNAME = "mailsql"
DB_USER = "root"
DB_PASSWORD = ""

def lookup():
  conn = MySQLdb.connect(DB_HOST, db = DB_DBNAME ,user= DB_USER, passwd = DB_PASSWORD)
  cursor = conn.cursor()

  # check creates
  cursor.execute("select t.domain from transport t, accounts a where t.accountsid = a.id and a.active = 1")
  rows = cursor.fetchall()

  try:
    f = open(LOOKUP_FILE, "w")
    for row in rows:
      f.write(".%s\n" % row[0])
    f.close()

    # settings rights
    os.chmod(LOOKUP_FILE, 0644)

  except:
    print "Schreiben der Lookup-Datei fehlgeschlagen"

  conn.close()

def printError():
  print "Usage: admin.py --lookup"
  print "  --lookup     Creates lookup file in %s" % LOOKUP_FILE

if __name__ == "__main__":
  # main routine
  l = len(sys.argv)
  if (l != 2):
    printError()
  else:
    if (sys.argv[1] == "--lookup"):
      lookup()
    else:
      printError()

läuft allerdings auf einer linuxkiste, kann also sein das du oben den python-interpreter anpassen musst. und ich habe einige stellen aus dem skript rausgenommen, wenn also probleme auftauchen, einfach mal mailen.

Bart
 
ich hab das ganze so gelöst in dem ich amavis sage es soll alle domains scannen:
@local_domains_maps = (".");

der punkt steht für die dns root.
 
Zurück
Oben