Отфильтруйте спам от того, чтобы быть переданным exim4

Вероятно, необходимо использовать разделенную команду вместо fdisk.

2
задан 23 May 2014 в 18:16
1 ответ

У вас есть ACL acl_check_data , где вы вызываете spamassassin. Когда SA обнаруживает спам, exim устанавливает переменную acl_m2 = $ spam_score_int . Теперь вы можете позже проверить эту переменную в маршрутизаторах и вести себя соответствующим образом. Fe выполните следующее:

begin routers
nospam:
        driver          = accept
        condition       = ${if eq{$local_part@$domain}{a@domain.com}}
        condition       = ${if >{$acl_m2}{SPAM_SCORE}}
        transport       = devnull

go2gmail:
        driver          = redirect
        condition       = ${if eq{$local_part@$domain}{a@domain.com}}
        data            = a@gmail.com   
        pipe_transport  = address_pipe
        unseen
. . . . .
dnslookup:
        . . . . .

Строго важно, что эти два маршрутизатора помещаются перед dnslookup , и вся магия была сделана до того, как сообщение могло быть отправлено во внешнее пространство. Сначала маршрутизатор проверяет переменную и адрес получателя, и если они оба «плохие» - просто перетащите сообщение в черную дыру. Если нет - следующий маршрутизатор перенаправит сообщение в Gmail вместо исходного пункта назначения. И тогда остальные маршрутизаторы сделают свою работу. Also I've add the unseen verb to the second router. That's mean that the original message also will be processed and delivered to the original destination - i.e. to the local maildir where it will be accessible via roundcube.

2
ответ дан 3 December 2019 в 11:43

Теги

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