Страница 1 из 1

exim, spamassassin, rewrite message's subject

Добавлено: 2009-06-10 13:53:39
paix
Есть exim, spamassain

подскажите как сделать, чтобы spamassasin изменял subject писем, идентифицированных как спам?

в exime следующий acl:

Код: Выделить всё

  warn  message         = X-Spam-Score: $spam_score ($spam_bar)
        spam            = mailnull:true
  warn  message         = X-Spam-Report: $spam_report
        spam            = mailnull:true
  accept hosts          = 127.0.0.1:+relay_from_hosts
  accept authenticated  = *

Код: Выделить всё

# egrep -v '^$|^#' /usr/local/etc/mail/spamassassin/local.cf
rewrite_header Subject *****SPAM*****
report_safe 1
required_score 5.0
use_bayes 1
bayes_auto_learn 1
пробовал добавлять это же самое и в user_prefs (/var/spool/mqueue/.spamassassin/user_prefs) - но не помогло.

Re: exim, spamassassin, rewrite message's subject

Добавлено: 2009-06-10 15:03:00
paix
немного неказисто, но пока сделал так.
Минус в том, что для всех доменов одна и таже политика....

Код: Выделить всё

  warn  message = Subject: *****SPAM***** $h_Subject
        spam            = mailnull:true
        condition = ${if >{$spam_score_int}{50}{1}{0}}

Re: exim, spamassassin, rewrite message's subject

Добавлено: 2010-01-13 16:52:56
ksvserega
Чтобы не создавать новую тему:
Возникла такая же проблема, порыл форум и инет, нашел вот такую конструкцию

Код: Выделить всё

warn    message = Subject: !!!!!Spam!!!!! (score $spam_score) $h_subject        
        spam = spamd:true                                                       
        condition = ${if >{$spam_score_int}{100}{1}{0}}                         
                                                                                
warn    message         = X-Spam-Report: $spam_report\nX-Spam-Score:$spam_score\
        condition       = ${if <{$message_size}{500k}{1}{0}}                    
        hosts           = !+relay_from_hosts                                    
        spam            = spamd:true                                            
        deny    message         = Sorry! We don't need your spam!               
        hosts           = !+relay_from_hosts                                    
        condition       = ${if >{$spam_score_int}{120}{1}{0}}                   
                                                                                
В итоге 2 поля Subject.

Код: Выделить всё

Return-path: <fortex-mail@ukr.net>
Envelope-to: airport@airport.dn.ua
Delivery-date: Wed, 13 Jan 2010 15:22:55 +0200
Received: from ffe15.ukr.net ([195.214.192.50])
	by airport.dn.ua with esmtp (Exim 4.69 (FreeBSD))
	(envelope-from <fortex-mail@ukr.net>)
	id 1NV3Ao-000H7t-F7
	for airport@airport.dn.ua; Wed, 13 Jan 2010 15:22:55 +0200
Received: from mail by ffe15.ukr.net with local ID 1NV39g-000Ai0-FS
	; Wed, 13 Jan 2010 15:21:00 +0200
MIME-Version: 1.0
Content-Transfer-Encoding: binary
Content-Type: multipart/mixed; boundary="_----------=_1263388860408573"
Date: Wed, 13 Jan 2010 15:21:00 +0200
Subject: =?WINDOWS-1251?Q?=CF=F0=E8=E3=EB=E0=F8=E5=ED=E8=E5_=ED=E0_=F1=E5?=
  =?WINDOWS-1251?Q?=EC=E8=ED=E0=F0_=E2_=C4=EE=ED=E5=F6=EA=E5_=E4?=
  =?WINDOWS-1251?Q?=EB=FF_=F0=F3=EA=EE=E2=EE=E4=E8=F2=E5=EB=FF,_?=
  =?WINDOWS-1251?Q?=E3=EB=E0=E2=ED=EE=E3=EE_=E1=F3=F5=E3=E0=EB=F2?= =?WINDOWS-1251?Q?=E5=F0=E0_?=
To: agrex@agrex.com.ua
From: =?WINDOWS-1251?Q?"=D4=EE=F0=F2=E5=EA=F1"?= <fortex-mail@ukr.net>
X-Life: is great, enjoy it!
X-Mailer: freemail.ukr.net mPOP 3.6.1-current
X-Originating-Ip: 192.168.1.91, 92.113.165.212 via proxy [92.113.165.212]
X-Browser: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; WebMoney Advisor; GTB6; MRSPUTNIK 2, 0, 1, 90 HW; MRA 5.4 (build 02647); .NET CLR 2.0.50727; InfoPath.1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Message-Id: <E1NV39g-000Ai0-FS@ffe15.ukr.net>
Subject: !!!!!Spam!!!!! (score 12.0) рТЙЗМБЫЕОЙЕ ОБ УЕНЙОБТ Ч дПОЕГЛЕ ДМС ТХЛПЧПДЙФЕМС, ЗМБЧОПЗП ВХИЗБМФЕТБ 
X-Spam-Report: Spam detection software, running on the system "airport.dn.ua", has
	identified this incoming email as possible spam.  The original message
	has been attached to this so you can view it (if it isn't spam) or label
	similar future email.  If you have any questions, see
	The administrator of that system for details.
	Content preview:  Уважаемые господа! Приглашаем Вас на семинары, которые мы
	проводим в Донецке. [...] 
	Content analysis details:   (12.0 points, 10.0 required)
	pts rule name              description
	---- ---------------------- --------------------------------------------------
	3.4 FH_DATE_PAST_20XX      The date is grossly in the future.
	2.5 DNS_FROM_RFC_DSN       RBL: Envelope sender in dsn.rfc-ignorant.org
	0.0 HTML_MESSAGE           BODY: HTML included in message
	1.1 RCVD_IN_SORBS_WEB      RBL: SORBS: sender is a abuseable web server
	[92.113.165.212 listed in dnsbl.sorbs.net]
	2.0 RU_CLASSES_WIN1251     RU_CLASSES_WIN1251
	0.5 RU_SUSPECTED_SPAM_WIN1251 RU_SUSPECTED_SPAM_WIN1251
	2.5 RU_SPAM_WIN1251        RU_SPAM_WIN1251
X-Spam-Score:12.0
X-Spam-Score-Int:120
X-UIDL: oDc"!gLn!!Ni##!f7i"!
В аутглюке показывается первое (и надписи !!!!!Spam!!!!! нету), а Бат выводит второе с нужной записью.
Растерялся малёха. Даже не знаю терь куда копать и че гуглить.

Re: exim, spamassassin, rewrite message's subject

Добавлено: 2010-01-14 22:00:52
CheGev80
Привожу рабочую конфигурацию, сам долго с этим боролся, значит в exim4.conf

Код: Выделить всё

 accept  condition = ${if >={$message_size}{100k}{yes}{no}}

   warn  message = This message scored $spam_score spam points.
      spam = nobody/defer_ok
Это с учетом того, что если у вас установлен sa-exim, настроен и конфиге ексима нужны еще две строки:

Код: Выделить всё

spamd_address = /var/run/spamd.sock Это конечно если хотите работать через сокет
local_scan_path = /usr/lib/exim4/local_scan/sa-exim.so
С этой связкой до сих пор разбираюсь, работает она чесно говоря не ахти, когда идет большая нагрузка писем со спамом, но я продвинулся,
так что если будут проблемы обращайтесь, поможем.

Re: exim, spamassassin, rewrite message's subject

Добавлено: 2010-01-15 8:48:16
ksvserega
CheGev80, чет либо я не понимаю, либо ты ошибаешься.
У тебя если размер письма больше либо равен 100к, то тогда в него пишется сообщение с указанием количества очков, набранных в SA.
Здесь же немного про другое, нужно дописать в Тему (поле Subject) письма сообщение о спаме

Re: exim, spamassassin, rewrite message's subject

Добавлено: 2010-01-15 15:54:27
CheGev80
accept condition = ${if >={$message_size}{100k}{yes}{no}}

Проверяются сообщения размер которых не превышает 100к, остальные пропускаются, а вот в Subject
уже дописывает сам спамаасасин.

Re: exim, spamassassin, rewrite message's subject

Добавлено: 2010-01-16 23:46:10
CheGev80
Извини на счет размера ты прав, а вопрос просто не понял. На самом деле у меня была такая же проблема, вот ссылка
http://linuxforum.ru/index.php?showtopi ... ntry947313, чесно говоря таким способом я её так и не решил. хотя сейчас доволен что есть, т.к. использую local_scan_path = /usr/lib/exim4/local_scan/sa-exim.so,
т.е. модуль sa-exim, так и возможностей больше и что мне понравилось еще, reportы спамассасина пишутся во все письма не зависимо спам это или нет. Ну а если ты решил все таки проблемы Subject, поделись я бы поюзал с удовольствием acl проверку)

Re: exim, spamassassin, rewrite message's subject

Добавлено: 2010-01-18 9:16:46
ksvserega
Получилось сделать ток через фильтр.
Итак, как у меня задумано и вроде как работает :-D : СА начисляет очки, если больше 150 - письмо идёт в отлуп без разговоров, дальше работает ток экзим, если очков от 120 до 150 - экзим режектит с соответствующим сообщением (сделано стандартно по конфигу Лиса), если очки меду 100 и 120, то в тему письма добавляется !!!!SPAM!!!! (у мну в этот диапазон иногда попадается нужное)

в конфиге экзима:

Код: Выделить всё

system_filter = /usr/local/etc/exim/myfilter
system_filter_user = mailnull               
в секции acl_check_data:

Код: Выделить всё

warn   spam = spamd:true                               
        set acl_m5 = $spam_score_int                    #сохранение в переменную спамовских очков
        set acl_m6 = $rheader_subject                   #сохранение в переменную заголовка
        condition = ${if >{$spam_score_int}{100}{1}{0}} 
дальше создал файлик /usr/local/etc/exim/myfilter

Код: Выделить всё

#EXIM FILTER                                       
                                                   
if $acl_m5 matches ^\\d+                           #Проверка на число
    then                                           
 if  $acl_m5 is above 100                          #Проверка на количество очков
 then                                              
    headers remove "Subject"                       #Удаление старой темы
    headers add "Subject: !!!!!!SPAM!!!!!! $acl_m6"   #Добавление новой
 endif                                             
endif                                              
Если че непонятно, спрашивайте