$local_part а в ящик spam ??????
Код: Выделить всё
local_delivery:
driver = appendfile
file = /var/mail/$local_part
delivery_date_add
envelope_to_add
return_path_add
group = mail
mode = 0660
Модератор: xM
Код: Выделить всё
local_delivery:
driver = appendfile
file = /var/mail/$local_part
delivery_date_add
envelope_to_add
return_path_add
group = mail
mode = 0660
Как записать само условие?lissyara писал(а):роутер рисуй с условием
Код: Выделить всё
condition = ${if >={$spam_score_int}{SPAM_SCORE_MAX}}Laa писал(а):Примерно так в роутере:Код: Выделить всё
condition = ${if >={$spam_score_int}{SPAM_SCORE_MAX}}
Код: Выделить всё
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery
cannot_route_message = Unknown user
Ну примерно так (сам не тестировал):armix писал(а):Вот мой рутерНапишите плиз, как сделать так, чтобы письма которые содержат в Subject слово ****SPAM**** кидалось не вКод: Выделить всё
localuser: driver = accept check_local_user # local_part_suffix = +* : -* # local_part_suffix_optional transport = local_delivery cannot_route_message = Unknown user
local_delivery а local_delivery_spam ???
У меня никак не получается, возможно я пишу неправильный синтаксис, помогите!
Код: Выделить всё
localuser_spam:
driver = accept
check_local_user
transport = local_delivery_spam
cannot_route_message = Unknown user
condition = ${if match{$h_subject}{\N****SPAM****.*\N}}
localuser:
...
Laa писал(а):Ну примерно так (сам не тестировал):armix писал(а):Вот мой рутерНапишите плиз, как сделать так, чтобы письма которые содержат в Subject слово ****SPAM**** кидалось не вКод: Выделить всё
localuser: driver = accept check_local_user # local_part_suffix = +* : -* # local_part_suffix_optional transport = local_delivery cannot_route_message = Unknown user
local_delivery а local_delivery_spam ???
У меня никак не получается, возможно я пишу неправильный синтаксис, помогите!Код: Выделить всё
localuser_spam: driver = accept check_local_user transport = local_delivery_spam cannot_route_message = Unknown user condition = ${if match{$h_subject}{\N****SPAM****.*\N}} localuser: ...
Код: Выделить всё
localuser_spam:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery_spam
cannot_route_message = Unknown user
condition = ${if match{$header_Subject}{\N^SPAM.*\N}{yes}{no}}
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery
cannot_route_message = Unknown user
######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
######################################################################
# A transport is used only when referenced from a router that successfully
# handles an address.
begin transports
# This transport is used for delivering messages over SMTP connections.
remote_smtp:
driver = smtp
# This transport invokes procmail to deliver mail
procmail:
driver = pipe
command = "/usr/bin/procmail -d $local_part"
return_path_add
delivery_date_add
envelope_to_add
user = $local_part
initgroups
return_output
# This transport is used for local delivery to user mailboxes in traditional
# BSD mailbox format. By default it will be run under the uid and gid of the
# local user, and requires the sticky bit to be set on the /var/mail directory.
# Some systems use the alternative approach of running mail deliveries under a
# particular group instead of using the sticky bit. The commented options below
# show how this can be done.
local_delivery:
driver = appendfile
file = /var/mail/$local_part
delivery_date_add
envelope_to_add
return_path_add
group = mail
mode = 0660
local_delivery_spam:
driver = appendfile
file = /var/mail/spam_$local_part
delivery_date_add
envelope_to_add
return_path_add
group = mail
mode = 0660
Код: Выделить всё
# Спам
#logwrite "EXIM FILTER: debug - digit in variable acl_m0 = $acl_m0 (before)"
# Проверяем содержимое переменной про спам (содержит ли цифры)
if $acl_m0 matches ^\\d+
then
#logwrite "EXIM FILTER: debug - digit in variable acl_m0 = $acl_m0 (after first if)"
# Строим новую тему письма - если спам
# Проверяем содержимое переменной со счётчиком спамерских очков.
# На данный момент считаем - что если 50 и более - это спам.
# Добавляем заголовки с объяснением происходящего
headers add "X-Spam-Description: if spam count > 50 - this is spam"
headers add "X-Spam-Count: $acl_m0"
if $acl_m0 is above 49
then
headers add "Old-Subject: $h_subject:"
headers remove "Subject"
headers add "Subject: (*** SPAM ***) $h_old-subject:"
headers add "X-Spam: YES" # Старый заголовок оставляем, на всякий случай
#headers remove "Old-Subject" deliver spam@my.domen.com
logwrite "$tod_log EXIM FILTER: Spam count = $acl_m0 ; Added SPAM header. FORWARD -> spam@my.domen.com"
seen finish
endif
# закрываем проверку в письме
endif
schizoid писал(а):у мну не роутом. а system-filterможете как пример взять и под себе поправитьКод: Выделить всё
# Спам #logwrite "EXIM FILTER: debug - digit in variable acl_m0 = $acl_m0 (before)" # Проверяем содержимое переменной про спам (содержит ли цифры) if $acl_m0 matches ^\\d+ then #logwrite "EXIM FILTER: debug - digit in variable acl_m0 = $acl_m0 (after first if)" # Строим новую тему письма - если спам # Проверяем содержимое переменной со счётчиком спамерских очков. # На данный момент считаем - что если 50 и более - это спам. # Добавляем заголовки с объяснением происходящего headers add "X-Spam-Description: if spam count > 50 - this is spam" headers add "X-Spam-Count: $acl_m0" if $acl_m0 is above 49 then headers add "Old-Subject: $h_subject:" headers remove "Subject" headers add "Subject: (*** SPAM ***) $h_old-subject:" headers add "X-Spam: YES" # Старый заголовок оставляем, на всякий случай #headers remove "Old-Subject" deliver spam@my.domen.com logwrite "$tod_log EXIM FILTER: Spam count = $acl_m0 ; Added SPAM header. FORWARD -> spam@my.domen.com" seen finish endif # закрываем проверку в письме endif
Ну попробуй взять в руки exim -bh и в режимах отладки понять почему не срабатывает условие.armix писал(а): Ваш пример не работает! Я упростил условие, как сделать так, чтобы письма которые содержат в Subject слово SPAM кидалось не в
local_delivery а local_delivery_spam ???
вот что я написал
Все равно все письма идут в local_delivery, и со словом SPAM в теме и без него!Код: Выделить всё
localuser_spam: driver = accept check_local_user # local_part_suffix = +* : -* # local_part_suffix_optional transport = local_delivery_spam cannot_route_message = Unknown user condition = ${if match{$header_Subject}{\N^SPAM.*\N}{yes}{no}} ...
Что делать?
Код: Выделить всё
system_filter = /usr/local/etc/exim/filters/system-filter