Moin
Am 05.06.2008 um 12:47 schrieb vol@???:
>
>> Ich habe jetzt einfach mal den spamcheck an der Stelle
>> rausgenommen. Außerdem habe ich die "$acl_m4 > 0" zugefügt,
>> sodass, wenn acl_m4 leer ist, die Bedingungen insgesamt auch nicht
>> erfüllt sein soll
>
> Ich glaube, dass "$acl_m4 > 0" noch nicht ganz ausreichend ist.
> Entweder sollte man im "warn"-Block, der gegebenenfalls die Header
> modifizieren soll, die kompletten "condition"-Elemente aus dem
> Scoring-"warn" wiederholen, oder eine andere Kennzeichnung benutzen,
> die sicherstellt, dass die Mail wirklich mit einem Scoring versehen
> worden ist.
> Meiner Meinung reicht "{>{$spam_score_int}{0}}" nicht aus, weil
> dieser Wert gegebenenfalls undefiniert ist. Konkret zum Beispiel für
> den zweiten Block:
Es gibt einen langen Thread zur behandlung von integer Variablen die
leer sind.
http://www.exim.org/lurker/message/20070102.200612.cc300686.en.html
Philip Hazel schreibt da:
1. In the context of ${if with a numerical comparison, treat an empty
string as "0". When expansion debugging is enabled, output a warning
when this happens.
>
> Die Duplizierung der lookups ist durch das Caching der Ergebnisse
> praktisch ohne nennenswerten Auswand. Innerhalb der ACLs sind
> mehrere "condition"-Elemente erlaubt, sie werden "und" verknüpft
> (leider gilt dies nicht für Router :-((
>
> Alternativ setzt man im Scoring-Block eine weitere Variable mit
> einem Merker (Bedeutung: "für diese Mail ist ein Scoring gelaufen")
> und fragt sie dann im folgenden "warn" ab.
>
dann habe ich doch aber auch eine gefüllte spam_score Variable?
Mein Stand der Dinge zur Zeit:
warn condition = ${if < {$message_size}{500k}{1}{0}}
condition = ${if and { {eq{$header_X-SA-Run:}{Yes}} \
{!eq {${lookup pgsql{WHITE_FROM}}}{1}} \
{!eq {${lookup pgsql{WHITE_SUBJ}}}{1}} \
} {yes}{no}}
spam = pop3:true/defer_ok
message = X-Spam_score: $spam_score\n
#spam_score_int darf nicht NULL sein!
warn condition = ${if def:spam_score}
condition = ${if and{ {>{$spam_score_int}{0}} \
{>{$acl_m4}{0}} \
} {1}{0}}
condition = ${if > {$spam_score_int}{$acl_m4} {1}{0}}
message = X-Spam-Flag: YES\n\
X-Spam_score_int: $spam_score_int\n\
X-Spam_value: $acl_m4\n\
X-Spam_bar: $spam_bar\n\
X-Spam_subject: *****SPAM*****($spam_score)
$h_subject:\n\
X-Spam_report: $spam_report\n