diff --git a/spam/edit_amavisd.cgi b/spam/edit_amavisd.cgi index 9fdde68c6..d5104dd72 100755 --- a/spam/edit_amavisd.cgi +++ b/spam/edit_amavisd.cgi @@ -11,7 +11,7 @@ my $amavis_cf=$config{'amavisdconf'}; $amavis_cf=$text{'index_unknown'} if (!$amavis_cf); if (!-r $amavis_cf ) { # Config not found - print &text('index_aconfig', + print &text('amavis_econfig', "$amavis_cf", "../config.cgi?$module_name"),"
\n"; &ui_print_footer($redirect_url, $text{'index_return'}); @@ -22,18 +22,28 @@ $conf = &get_amavis_config(); print &text('amavisd_desc'),"
\n"; +# tabbed interface for config and quaratine +@tabs=(['config', $text{'amavis_tab_config'}], [ 'quarantine', $text{'amavis_tab_quarantine'} ]); +print &ui_tabs_start(\@tabs, 'mode','config'); + # Find the existing config +print &ui_tabs_start_tab("mode", "config"); &start_form("save_amavisd.cgi", $text{'score_header'}); # spam tag2 level, when is classiefied as spam $hits = &amavis_find('sa_tag2_level_deflt', $conf); -print &ui_table_row($text{'score_hits'}, - &opt_field('sa_tag2_level_deflt', $hits, 7, 6.5)); +print &ui_table_row($text{'amavis_hits'}, + &opt_field('sa_tag2_level_deflt', $hits, 5, "undef")); # amavis quarantine spam level $hits = &amavis_find('sa_kill_level_deflt', $conf); print &ui_table_row($text{'amavis_quarantine_level'}, - &opt_field('sa_kill_level_deflt', $hits, 7, 6.5)); + &opt_field('sa_kill_level_deflt', $hits, 5, "undef")); + +# amavis no DSN spam level +$hits = &amavis_find('sa_dsn_cutoff_level', $conf); +print &ui_table_row($text{'amavis_dsn_level'}, + &opt_field('sa_dsn_cutoff_level', $hits, 5, "undef")); # amavis delete spam level $hits = &amavis_find('sa_quarantine_cutoff_level', $conf); @@ -43,32 +53,87 @@ print &ui_table_row($text{'amavis_delete_level'}, print &ui_table_hr(); # should amavis rewrite subject $rewrite = &amavis_find('sa_spam_modifies_subj', $conf); -print &ui_table_row($text{'report_rewrite'}, - &yes_no_field('sa_spam_modifies_subj', $rewrite, 0)); +print &ui_table_row($text{'amavis_rewrite'}, + &yes_no_field('sa_spam_modifies_subj', $rewrite, "undef")); # do how to modify subject $hits = &amavis_find('sa_spam_subject_tag', $conf); -print &ui_table_row($text{'report_rsubject'}, +print &ui_table_row($text{'amavis_rsubject'}, &opt_field('sa_spam_subject_tag', $hits, 9, "undef")); # insert X-Spam header $hits = &amavis_find('sa_spam_report_header', $conf); -print &ui_table_row($text{'amavis_add_header'}, +print &ui_table_row($text{'amavis_report_header'}, &yes_no_field('sa_spam_report_header', $hits, 0)); +# character to use for spam level +$hits = &amavis_find('sa_spam_level_char', $conf); +print &ui_table_row($text{'amavis_level_char'}, + &opt_field('sa_spam_level_char', $hits, 2, "*")); + +# network checks enabled? +$rewrite = &amavis_find('sa_local_tests_only', $conf); +print &ui_table_row($text{'amavis_local_only'}, + &yes_no_field('sa_local_tests_only', $rewrite, 0)); + # do not check mail larger then $hits = &amavis_find('sa_mail_body_size_limit', $conf); print &ui_table_row($text{'amavis_size_limit'}, &opt_field('sa_mail_body_size_limit', $hits, 9, "undef")); -# network checks enabled? -$rewrite = &amavis_find('sa_local_tests_only', $conf); -print &ui_table_row($text{'amavis_local_tests_only'}, - &yes_no_field('sa_local_tests_only', $rewrite, 0)); +&end_form(undef, $text{'amavis_ok'}); +print &ui_tabs_end_tab("mode", "config"); +# list quarantine +print &ui_tabs_start_tab("mode", "quarantine"); +print &ui_table_start($text{'amavis_tab_quarantine'}, "width=100%", 2); -&end_form(undef, $text{'amavisd_ok'}); +# get amavids.conf values +$dir=&amavis_find_value('QUARANTINEDIR', $conf); +$to=&amavis_find_value('spam_quarantine_to', $conf); +$method=&amavis_find_value('spam_quarantine_method', $conf); +$admin=&amavis_find_value('spam_admin', $conf); +$admin=&amavis_find_value('daemon_user', $conf)."@".&amavis_find_value('myhostname', $conf) if (!$admin); + +print &ui_table_span($text{'amavis_quarantine_desc'}."
");
+
+print &ui_table_row($text{'amavis_spam_admin'}, $admin);
+
+if (!$to && $method =~ /^local:/) {
+ print &ui_table_span("
".&text('amavis_quarantine_off', $config{'amavisdconf'})."");
+ print &ui_table_hr();
+ print &ui_table_span("".$text{'amavis_nostat'}."");
+} else {
+ if ($to =~ /@/) {
+ # spam is forwarded to mail adress
+ print &ui_table_row($text{'amavis_quarantine_mail'}, $to);
+ print &ui_table_hr();
+ print &ui_table_span("".$text{'amavis_nostat'}."");
+ } else {
+ if ($method =~ s/^bsmtp://) {
+ # spam is quarantined in bsmtp format
+ $method =~ s/\%.*$/*/;
+ print &ui_table_row($text{'amavis_quarantine_bsmtp'}, $dir."/".$method);
+ } else {
+ # spam is qurantined local
+ $method =~ s/^local:(.*?)\%.*$/\1*/;
+ print &ui_table_row($text{'amavis_quarantine_local'}, $dir."/".$method);
+ }
+ # display spamstat ...
+ print &ui_table_hr();
+ print &ui_table_row($text{'amavis_quarantine_total'},&backquote_command("ls $dir/$method| wc -l"));
+ print &ui_table_row($text{'amavis_quarantine_today'},&backquote_command("find $dir/$method -ctime -1| wc -l"));
+ print &ui_table_row($text{'amavis_quarantine_week'},&backquote_command("find $dir/$method -ctime -7| wc -l"));
+ print &ui_table_row($text{'amavis_quarantine_month'},&backquote_command("find $dir/$method -ctime -30| wc -l"));
+ }
+}
+
+print &ui_table_end();
+print &ui_tabs_end_tab("mode", "quarantine");
+
+#end tabbed interface
+print &ui_tabs_end(1);
&ui_print_footer($redirect_url, $text{'index_return'});
diff --git a/spam/lang/de b/spam/lang/de
index 9ebf549d8..d913c6271 100644
--- a/spam/lang/de
+++ b/spam/lang/de
@@ -7,21 +7,42 @@ acl_filedef=Globale Konfigurationsdatei
acl_file=SpamAssassin-Konfigurationsdatei zu bearbeiten
after_ecmd=Nach dem Speichern-Befehl fehlgeschlagen: $1
amavisd_desc=Das Formular kann verwendet werden, um in der Amavisd-Konfiguration festzulegen wann Nachrichten als unerwüscht eingestuft und wie diese behandelt werden.
-amavisd_ok=Ändere Amavisd Konfiguration
-amavisd_title=Amavisd Spam Konfiguration
-amavis_ehit=Spam-Wert, ab dem eine Mail als Spam klassifiziert wird ist keine Zahl!
-amavis_ekill=Spam Wert, ab dem eine Spam-Mail in Quarantäne geschickt wird ist keine Zahl!
-amavis_ecut=Spam Wert, ab dem eine Spam-Mail in gelöscht wird ist keine Zahl!
-amavis_eheader=Wert für Änderung Betreff-E-Mail-Header ist keine Zahl!
-amavis_esubject=Wert für Spam Markierung vor dem Betreff:-Headerist keine Zahl!
-amavis_esize=Wert für Größe ab der eine Mail nicht mehr auf Spam überprüft wd ist keine Zahl!
-amavis_elocal=Wert für Internet Dienste zum Klassifizieren der Mail ist keine Zahl!
-amavis_warn=Wenn Du Amavisd als Spam Filter benutzt, werden einige Einstellungen ignoriert.
-amavis_quarantine_level=Spam Wert, ab dem eine Spam-Mail in Quarantäne geschickt wird.
amavis_delete_level=Spam Wert, ab dem eine Spam-Mail in gelöscht wird.
-amavis_add_header=X-Spam-Header in Spam-Mail einfügen?
+amavis_dsn_level=Spam Wert, ab dem keine Benachrichtigung an den Absender geschickt wird.
+amavisd_title=Amavisd Spam Konfiguration
+amavis_econfig=Die Amavisd-Konfigurationsdatei $1 wurde nicht auf Ihrem System gefunden. Entweder ist Amavisd nicht installiert, oder Ihre Modulkonfiguration ist falsch.
+amavis_ecut=Spam Wert, ab dem eine Spam-Mail in gelöscht wird ist kein gültiger Wert!
+amavis_edsn=Spam Wert, ab dem keine Benachrichtigung an den Absender geschickt wird ist kein gültiger Wert!
+amavis_eheader=Wert für Änderung Betreff-E-Mail-Header ist kein gültiger Wert!
+amavis_ehit=Spam-Wert, ab dem eine Mail als Spam klassifiziert wird ist keine Zahl!
+amavis_ekill=Spam Wert, ab dem eine Spam-Mail in Quarantäne geschickt wird ist kein gültiger Wert!
+amavis_elocal=Wert für Internet Dienste zum Klassifizieren der Mail ist kein gültiger Wert!
+amavis_esize=Wert für Größe ab der eine Mail nicht mehr auf Spam überprüft wd ist kein gültiger Wert!
+amavis_echar=Es ist nur ein einzelnes Zeichen X-Spam-Level:-Header zulässig
+amavis_esubject=Wert für Spam Markierung vor dem Betreff:-Headerist kein gültiger Wert!
+amavis_hits=Spam-Wert, ab dem eine Mail als Spam klassifiziert wird
+amavis_level_char=Zeichen zum Anzeigen des Spam-Levels im X-Spam-Level:-Header
+amavis_local_only=Keine Internet Dienste zum Klassifizieren der Mail verwenden?
+amavis_nostat=Es können keine Spam-Statistiken angezeigt werden.
+amavis_ok=Ändere Amavisd Konfiguration
+amavis_quarantine_bsmtp=Spam wird in der Quarantäne im BSMTP-Format auf der lokalen Platte gespeichert als
+amavis_quarantine_desc=Hier siehst Du wo Amavisd die Spam-Mail in Quarantäne speichert, sowie Spam-Statistiken wenn die lokale Quarantäne eingerichet ist. Wenn die Quarantäne deaktiviert oder eine Mail-Weiterleitung eingerichtet ist, wird keine Spam-Statistik angezeigt.
+amavis_quarantine_level=Spam Wert, ab dem eine Spam-Mail in Quarantäne geschickt wird.
+amavis_quarantine_local=Spam wird in der Quarantäne im MBOX-Format auf der lokalen Platte gespeichert als
+amavis_quarantine_mail=Spam-Mail in Quarantäne wird weitergeleitet an die E-Mail-Adresse
+amavis_quarantine_month=Spam-Mails in Quarantäne diesen Monat (30 Tage)
+amavis_quarantine_off=Die Quarantäe ist ausgeschaltet. Zum Einschalten ändere in der Datei $1 den Wert $spam_Quarantine_to auf 'spam-quarantine'.
+amavis_quarantine_today=Spam-Mails in Quarantäne heute (24h)
+amavis_quarantine_total=Aktuelle Anzahl der Spam -Mails in Quarantäne
+amavis_quarantine_week=Spam-Mails in Quarantäne diese Woche (7 Tage)
+amavis_report_header=X-Spam-Header in Spam-Mail einfügen?
+amavis_rewrite=Ändere den Betreff-E-Mail-Header von Spam?
+amavis_rsubject=Spam Markierung vor dem Betreff:-Header.
amavis_size_limit=Größe in Byte ab der eine Mail nicht mehr auf Spam überprüft wird.
-amavis_local_tests_only=Keine Internet Dienste zum Klassifizieren der Mail verwenden?
+amavis_spam_admin=Absender-Mail-Adresse von der Benachrichtigungen verschickt werden (Spam Admin)
+amavis_tab_config=Amavisd Konfiguration
+amavis_tab_quarantine=Spam Quarantäne
+amavis_warn=Wenn Du Amavisd als Spam Filter benutzt, werden einige Einstellungen ignoriert.
apply_err=Konnte Änderungen nicht anwenden
apply_none=Es wurde kein SpamAssassin-Daemon-Prozess gefunden!
awl_black=Permanentes Ablehnen
@@ -141,7 +162,6 @@ import_err=Konnte Adressen nicht importieren
import_ok1=$2 E-Mail-Adressen wurden in der Datei gefunden, wobei $1 neu sind und der Liste der erlaubten E-Mail-Adressen hinzugefügt wurden.
import_ok2=$1 E-Mail-Adressen wurden in der Datei gefunden, aber diese befinden sich bereits in der Liste der erlaubten E-Mail-Adressen.
import_title=Importiere Adressen
-index_aconfig=Die Amavisd-Konfigurationsdatei $1 wurde nicht auf Ihrem System gefunden. Entweder ist Amavisd nicht installiert, oder Ihre Modulkonfiguration ist falsch.
index_apply=Änderungen anwenden
index_applydesc=Klicken Sie auf diesen Button, um die momentan SpamAssassin-Konfiguration anzuwenden, indem Sie ein HUP-Signal an alle $1 laufenden Prozesse schicken.
index_cpan=Da SpamAssassin ein Perl-Modul ist, können Sie es auch automatisch durch das Webmin-Modul Perl-Module (CPAN) aus CPAN herunterladen und installieren lassen.
@@ -205,21 +225,60 @@ priv_highest=Höchster Phrasenwert
priv_log=Pfad zur Timing-Logdatei
priv_mode=Zugriffsrechte für Auto-Whitelist Datei
priv_phrase=Aus zwei Wörtern bestehende Phrase
-report_fold=Teile den X-Spam-Status: E-Mail-Header über mehrere Zeilen auf?
+priv_phrases=Phrasen zur Identifizierung von Spam
+priv_razor=Pfad zur Razor KonfigurationsDatei
+priv_score=Wert
+priv_title=Privilegierte Optionen
+priv_white=Pfad zur Auto-Whitelist Datei
+process_eclean=Beim entfernen der SpamAsssin Header ist ein Fehler aufgetreten
+process_ereport=Fehler beim übergeben der E-Mail an SpamAssassin : $1
+procmail_desc=Dieses Formual kann verwendte werden, um die Procmail Konfiguration zur Behandlung von Spam-Mail anzupassen.
+procmail_ok=Procmail Spam Konfiguration
+procmail_title=Procmail Spam Konfiguartion
+razor_auto=Automatisch auwählen
+razor_desc=Bei Vipul's Razor handelt es sich um ein collaboratives Spam Erkennungs- and Meldesystem, welches die Spam-Erkennung verbessert. Zur Nutzung wird ein Razor Account benötigt den man mit dieser Eingabemaske erstellen kann.
+razor_doing=Versuche einen Razor Account zu erstellen und Razor auf dem System einzurichten ..
+razor_done=.. Erfolgreich.
+razor_ecmd=Der Befehl zum Einrichten von Razor $1 wurde nicht auf dem System gefunden, warscheinlich ist Razor nicht installiert.
+razor_enter=Eingegeben
+razor_epass=Fehlendes Password
+razor_err=Razor Einrichtung fehlgeschlagen
+razor_euser=Fehlender Benutzername
+razor_failed=.. Fehlgeschlagen! Siehe obige Fehlermeldung warum.
+razor_ok=Richte ein
+razor_pass=Razor Password
+razor_title=Razor Spam Detector Einrichten
+razor_user=Razor Benutzername
+report_addall=Alle
+report_addfor=Nachrichten Typ
+report_addham=Ham
+report_addheader=Header-Name
+report_addspam=Spam
+report_adds=Weitere Header zu E-Mail hinzufügen
+report_addtext=Text für Header
+report_char=Zeichen zur Nutzung im X-Spam-Level:-Header
+report_clear=Verwende den untenstehen Text ..
+report_defang=Ändere den MIME-Type einer Spam_Mail auf text/plain?
+report_desc=Das Formular kann verwendet werden, um festzulegen wie unerwüschte Nachrichten von SpamAssassin als Spam markiert werden.
+report_detail=Füge Details zu gefundenen Spam-Phrasen hinzu?
+report_eaddheader=Fehlender oder ungültiger Header zum hinzufügen $1
+report_echar=Es ist nur ein einzelnes Zeichen X-Spam-Level:-Header zulässig
+report_err=Speichern der der Konfiguration fehlgeschlagen
+report_fold=Teile den X-Spam-Status:-Header über mehrere Zeilen auf?
report_header=Analysierte und Spam-E-Mail-Änderungsoptionen
report_leave=Unverändert lassen
report_noclear=Füge folgenden Test der Standard-Nachricht hinzu ...
-report_report=Report, welcher E-Mails angefügt wird, die die Spam-Schwelle übersteigen
+report_report=Report der einer E-Mail bei überschreiten der Spam-Schwelle hinzugefügt wird
report_rewrite=Ändere den Betreff-E-Mail-Header von Spam?
report_rfrom=Spam Markierung vor dem From:-Header.
-report_rheader=Füge den Report in den X-Spam-Status: E-Mail-Header statt in den Textkörper ein?
+report_rheader=Füge den Report in den X-Spam-Status:-Header statt in den Textkörper ein?
report_rsubject=Spam Markierung vor dem Betreff:-Header.
report_rto=Spam Markierung vor dem An:-Header.
report_safe2=Ja, als Reintext
report_safe=Füge die Original-E-Mail nicht dem Dateianhang hinzu?
report_stars=X-Spam-Level: E-Mail-Header benutzen?
report_subject=Text, welcher dem Betreff-E-Mail-Header hinzugefügt wird.
-report_terse=Report dem Spam anhängen, wenn SpamAssassin im kurzen Modus läuft
+report_terse=Report der einer Mail angehängt wird, wenn SpamAssassin im kurzen Modus läuft
report_title=E-Mail-Modifizierung
report_useterse=Nur kurzen Report generieren?
score_auto=Gewichtung von Whitelist Einträgen
@@ -250,7 +309,6 @@ score_mxdelay=Wartezeit in Sekunden zwischen MX-Tests
score_name=Testname
score_points=Punkte
score_rbl=Übergehe den RBL-Open-Relay-Test?
-
score_received=Anzahl der Received:-E-Mail-Headern, die mit RBL getestet werden sollen
score_score=SpamAssassin Testwerte
score_timeout=Sekunden, die auf Rückmeldung der RBL-Tests gewarten wird
diff --git a/spam/lang/en b/spam/lang/en
index 150802548..3fce96a80 100644
--- a/spam/lang/en
+++ b/spam/lang/en
@@ -1,7 +1,6 @@
index_title=SpamAssassin Mail Filter
index_ecmd=The SpamAssassin command $1 was not found on your system. Maybe it is not installed, or your module configuration is incorrect.
index_ecmd2=The SpamAssassin command $1 was not found on your system.
-index_aconfig=The Amavisd configuration file $1 was not found on your system. Maybe Amavisd is not installed, or your module configuration is incorrect.
index_econfig=The SpamAssassin local configuration file or directory $1 was not found on your system. Maybe SpamAssassin is not installed, or your module configuration is incorrect.
index_unknown=unknown
index_edb=Failed to connect to the SpamAssassin configuration database : $1. Check the module configuration to be sure you are using the correct settings.
@@ -53,7 +52,6 @@ score_score=SpamAssassin test scores
score_name=Test name
score_points=Points
score_hits=Hits above which a message is considered spam
-score_other=
Note: If you use Amavisd as spam filter this setting is ignored.
score_rbl=Skip RBL open-relay check?
score_mx=Number of times to check From: address MX
score_mxdelay=Seconds to wait between MX checks
@@ -287,21 +285,43 @@ razor_done=.. done.
razor_failed=.. failed! See the error output above for the reason why.
amavisd_title=Amavisd Spam Delivery
-amavisd_ok=Change Amavisd Delivery
amavisd_desc=The form can be used to change the Amavisd configuration that determines what happens to messages classified as spam.
+amavis_ok=Change Amavisd Delivery
+amavis_tab_config=Amavisd Configuration
+amavis_tab_quarantine=Spam Quarantine
amavis_warn=If you use Amavisd for Spam filtering, some options will be ignored.
-amavis_ehit=Hits above which a message is considered spam is not numeric!
-amavis_ekill=Hits above which a Spam message is quarantined is not numeric!
-amavis_ecut=Hits above which a Spam message is deleted is not numeric!
-amavis_eheader=Value for Modify Subject: header is not numeric!
-amavis_esize=Value for size above witch a message is not checked for Spam is not numeric!
-amavis_esubject=Value for Prepend text to Subject: header is not numeric!
-amavis_elocal=Value for disable Internet sources is not numeric!
-amavis_quarantine_level=Hits above which a Spam message is quarantined.
+amavis_econfig=The Amavisd configuration file $1 was not found on your system. Maybe Amavisd is not installed, or your module configuration is incorrect.
+amavis_hits=Hits above which a message is considered spam.
+amavis_ehit=Hits above which a message is considered spam is not a value!
+amavis_ekill=Hits above which a Spam message is Quarantined is not a value!
+amavis_edsn=Hits above which no notification is sent to sender is not a value!
+amavis_ecut=Hits above which a Spam message is deleted is not a value!
+amavis_eheader=Value for Modify Subject: header is not a value!
+amavis_esize=Value for size above witch a message is not checked for Spam is not a value!
+amavis_echar=A single character must be entered for the X-Spam-Level: header
+amavis_esubject=Value for Prepend text to Subject: header is not a value!
+amavis_elocal=Value for disable Internet sources is not a value!
+amavis_quarantine_level=Hits above which a Spam message is Quarantined.
+amavis_dsn_level=Hits above which no notification is sent to sender.
amavis_delete_level=Hits above which a Spam message is deleted.
-amavis_add_header=Insert X-Spam-Header in Spam message?
+amavis_report_header=Insert X-Spam-Header in Spam message?
+amavis_level_char=Character used to display Spam-Level in X-Spam-Level: header.
+amavis_rewrite=Modify Subject: header of spam?
+amavis_rsubject=Prepend text to Subject: header
amavis_size_limit=Message size in bytes above witch a message is not checked for Spam.
-amavis_local_tests_only=Disable Internet sources for Spam checks?
+amavis_local_only=Disable Internet sources for Spam checks?
+amavis_quarantine_desc=Show where Spam is Quarantined by Amavisd, display also Spam Stats if local Quarantine is enabled. If Quarantine is disabled or forwarded to a mail adress, Spam Stats can not be displayed.
+amavis_quarantine_off=Spam Quarantine is disabled on your system. Change $spam_Quarantine_to to spam-quarantine in file $1 to enable Quaratine.
+amavis_nostat=It's not possible to display Spam Stats.
+amavis_spam_admin=Mail adress where notifications are sent from (Spam admin)
+amavis_quarantine_mail=Spam in Quarantine is forwarded to mail adress
+amavis_quarantine_bsmtp=Spam is Quarantined in BSMTP format on local file system as
+amavis_quarantine_local=Spam is Quarantined in MBOX format on local file system as
+amavis_quarantine_today=Spam mails in Quarantine today (24h)
+amavis_quarantine_week=Spam mails in Quarantine this week (7 days)
+amavis_quarantine_month=Spam mails in Quarantine this month (30 days)
+amavis_quarantine_total=Total number of Spam mails in Quarantine
+
procmail_title=Procmail Spam Delivery
procmail_ok=Change Procmail Delivery
procmail_desc=The form can be used to change the Procmail configuration that determines what happens to messages classified as spam.
diff --git a/spam/save_amavisd.cgi b/spam/save_amavisd.cgi
index e1e50f93d..d2c4b3ceb 100755
--- a/spam/save_amavisd.cgi
+++ b/spam/save_amavisd.cgi
@@ -12,9 +12,11 @@ $conf = &get_amavis_config();
# check for default values
local $tag2=$in{'sa_tag2_level_deflt'};
-$tag2=6.5 if ($in{'sa_tag2_level_deflt_def'}==1);
+$tag2="undef" if ($in{'sa_tag2_level_deflt_def'}==1);
local $kill=$in{'sa_kill_level_deflt'};
-$kill=6.5 if ($in{'sa_kill_level_deflt_def'}==1);
+$kill="undef" if ($in{'sa_kill_level_deflt_def'}==1);
+local $dsn=$in{'sa_dsn_cutoff_level'};
+$dsn="undef" if ($in{'sa_dsn_cutoff_level_def'}==1);
local $cut=$in{'sa_quarantine_cutoff_level'};
$cut="undef" if ($in{'sa_quarantine_cutoff_level_def'}==1);
local $subj=$in{'sa_spam_modifies_subj'};
@@ -23,6 +25,8 @@ local $subtag=$in{'sa_spam_subject_tag'};
$subtag="undef" if ($in{'sa_spam_subject_tag_def'}==1);
local $head=$in{'sa_spam_report_header'};
$head=0 if ($in{'sa_spam_report_header'}==-1);
+local $char=$in{'sa_spam_level_char'};
+$char="*" if ($in{'sa_spam_level_char_def'}==1);
local $size=$in{'sa_mail_body_size_limit'};
$size="undef" if ($in{'sa_mail_body_size_limit_def'}==1);
local $local=$in{'sa_local_tests_only'};
@@ -34,6 +38,8 @@ $local=0 if ($in{'sa_local_tests_only'}==-1);
&error($text{'amavis_ehit'});
&check_amavis_value($kill, 1) ||
&error($text{'amavis_ekill'});
+&check_amavis_value($dsn, 1) ||
+ &error($text{'amavis_edsn'});
&check_amavis_value($cut, 1) ||
&error($text{'amavis_ecut'});
&check_amavis_value($subj, 1) ||
@@ -44,14 +50,17 @@ $local=0 if ($in{'sa_local_tests_only'}==-1);
&error($text{'amavis_esize'});
&check_amavis_value($size, 1) ||
&error($text{'amavis_elocal'});
+&error($text{'amavis_echar'}) if (length($char) != 1);
# Save inputs
&save_amavis_directive($conf, 'sa_tag2_level_deflt', $tag2);
&save_amavis_directive($conf, "sa_kill_level_deflt", $kill);
+&save_amavis_directive($conf, "sa_dsn_cutoff_level", $dsn);
&save_amavis_directive($conf, "sa_quarantine_cutoff_level", $cut);
&save_amavis_directive($conf, "sa_spam_modifies_subj", $subj);
&save_amavis_directive($conf, "sa_spam_subject_tag", $subtag);
&save_amavis_directive($conf, "sa_spam_report_header", $head);
+&save_amavis_directive($conf, "sa_spam_level_char", $char);
&save_amavis_directive($conf, "sa_mail_body_size_limit", $size);
&save_amavis_directive($conf, "sa_local_tests_only", $local);
diff --git a/spam/spam-amavis-lib.pl b/spam/spam-amavis-lib.pl
index 23263dcf9..2702bdcf6 100755
--- a/spam/spam-amavis-lib.pl
+++ b/spam/spam-amavis-lib.pl
@@ -41,8 +41,8 @@ return \@rv;
# check if value is ok or not
sub check_amavis_value
{
-if ($_[1]) {
- return $_[0] =~ m/^[0-9\.\,\*\-\+\/]+$|\^$/;
+if ($_[1] && $_[1] eq "*") {
+ return $_[0] =~ m/^[0-9\.\,\*\-\+\/]+$|undef/;
}
return 1;
}
@@ -71,7 +71,7 @@ local $pos = $old->{'line'};
$v =~ s/\n$//;
$v =~ s/\@/\\@/g;
- if ($old->{'computed'}) {
+ if ($old->{'computed'} && $v ne "*") {
splice(@$lref, $pos, $olen, "\$$n = $v; # modified by webmin");
} else {
splice(@$lref, $pos, $olen, "\$$n = \"$v\"; # modified by webmin");