Страница 1 из 1
Помогите спам письма кидать в другой ящик
Добавлено: 2009-09-30 16:14:54
armix
Помогите изменить строку file = /var/mail/$local_part так, чтобы письма, которые содержат в Subject слово ****SPAM**** кидалось не в
$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
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-01 8:00:28
Alex Keda
роутер рисуй с условием
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-01 9:48:01
armix
lissyara писал(а):роутер рисуй с условием
Как записать само условие?
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-01 13:04:31
Laa
Примерно так в роутере:
Код: Выделить всё
condition = ${if >={$spam_score_int}{SPAM_SCORE_MAX}}
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-01 14:14:07
armix
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
Напишите плиз, как сделать так, чтобы письма которые содержат в Subject слово ****SPAM**** кидалось не в
local_delivery а local_delivery_spam ???
У меня никак не получается, возможно я пишу неправильный синтаксис, помогите!
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-01 15:45:42
Laa
armix писал(а):Вот мой рутер
Код: Выделить всё
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery
cannot_route_message = Unknown user
Напишите плиз, как сделать так, чтобы письма которые содержат в Subject слово ****SPAM**** кидалось не в
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:
...
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-02 11:18:59
armix
Laa писал(а):armix писал(а):Вот мой рутер
Код: Выделить всё
localuser:
driver = accept
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
transport = local_delivery
cannot_route_message = Unknown user
Напишите плиз, как сделать так, чтобы письма которые содержат в Subject слово ****SPAM**** кидалось не в
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:
...
Ваш пример не работает! Я упростил условие, как сделать так, чтобы письма которые содержат в Subject слово SPAM кидалось не в
local_delivery а 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}}
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
Все равно все письма идут в local_delivery, и со словом SPAM в теме и без него!
Что делать?
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-02 12:53:39
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
можете как пример взять и под себе поправить
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-02 13:18:47
armix
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.conf ?
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-02 15:31:37
Laa
armix писал(а):
Ваш пример не работает! Я упростил условие, как сделать так, чтобы письма которые содержат в Subject слово SPAM кидалось не в
local_delivery а 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}}
...
Все равно все письма идут в local_delivery, и со словом SPAM в теме и без него!
Что делать?
Ну попробуй взять в руки exim -bh и в режимах отладки понять почему не срабатывает условие.
Уверен, все получится.
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-02 17:21:45
schizoid
в главном файле ексима описать
Код: Выделить всё
system_filter = /usr/local/etc/exim/filters/system-filter
далее создать файл /usr/local/etc/exim/filters/system-filter и туда вписать то, что писал выше
Re: Помогите спам письма кидать в другой ящик
Добавлено: 2009-10-03 12:14:15
armix
Уже сделал на основе procmail, легко и просто!