Вероятно, необходимо использовать разделенную команду вместо fdisk.
У вас есть 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.