Добавить X-Spam-Flag с помощью exim4

Я новичок в exim4. У меня такая конфигурация:

.ifdef SA_ENABLE
        warn
            !authenticated = *
            hosts = !127.0.0.1/24
            condition = ${if < {$message_size}{1K}}
            spam       = SA_SPAMD_USER:true
            add_header = X-Spam_score: $spam_score\n\
                   X-Spam_score_int: $spam_score_int\n\
                   X-Spam_bar: $spam_bar\n\
                   X-Spam_report: $spam_report

        warn
            !authenticated = *
            hosts = !+relay_from_hosts
            spam       = SA_SPAMD_USER:true/defer_ok
            add_header = X-Spam_score: $spam_score\n\
                    X-Spam_score_int: $spam_score_int\n\
                    X-Spam_bar: $spam_bar\n\
                    X-Spam_report: $spam_report
            set acl_m4 = $spam_score_int
            condition = ${if and{{<{$message_size}{100K}}{<{$acl_m4}{SA_SCORE_REJECT}}} {yes}{no}}
            logwrite = From $sender_address to $recipients X-Spam_score: $acl_m4.

        deny
            condition = ${if and{{>{$message_size}{10K}}{!eq{$acl_m4}{}}{>{$acl_m4}{SA_SCORE_REJECT}}} {yes}{no}}
            message = Content analisis tool detect spam (from $sender_address to $recipients). Contact SA_ABUSE_ADDR.
.endif

Как я могу настроить добавление X-Spam-Flag (да или нет), если оценка выше / ниже значения, и отклонить, если выше другого значения. (В настоящее время SA_SCORE_REJECT = 50)

0
задан 19 May 2017 в 05:22
1 ответ

Если я хочу принудительно применить И для двух отдельных условий, я считаю более понятным записать их как два отдельных условия пунктов. Думаю, это сработает:

# Define constants
SA_MESSAGE_SIZE=100K
SA_SCORE_FLAG=50
SA_SCORE_REJECT=100

и

.ifdef SA_ENABLE
    warn
        !authenticated = *
        hosts = !127.0.0.0/8 : !+relay_from_hosts
        condition = ${if <{$message_size}{SA_MESSAGE_SIZE}}
        spam       = SA_SPAMD_USER:true
        set acl_m4 = $spam_score_int
        add_header = X-Spam_score: $spam_score\n\
               X-Spam_score_int: $spam_score_int\n\
               X-Spam_bar: $spam_bar\n\
               X-Spam_report: $spam_report

    warn
        !authenticated = *
        hosts = !127.0.0.0/8 : !+relay_from_hosts
        condition = ${if <{$message_size}{SA_MESSAGE_SIZE}}
        condition = ${if >{$acl_m4}{SA_SCORE_FLAG}}
        add_header = X-Spam-Flag: YES
        logwrite = From $sender_address to $recipients X-Spam_score: $acl_m4.

# Reject spam messages with score*10 over SA_SCORE_REJECT=100
    deny
        !authenticated = *
        hosts = !127.0.0.0/8 : !+relay_from_hosts
        message = Content analysis tool detect spam (from $sender_address to $recipients). Contact SA_ABUSE_ADDR.
        condition = ${if <{$message_size}{SA_MESSAGE_SIZE}}
        condition = ${if >{$acl_m4}{SA_SCORE_REJECT}}
        logwrite = From $sender_address to $recipients spam message was rejected X-Spam_score: $acl_m4. 
.endif

$ spam_score_int = 100 равно $ spam_score = 10.0

1
ответ дан 4 December 2019 в 16:15

Теги

Похожие вопросы