Добрый день!Есть почтовый сервер на FreeBSD связка Exim+Dovecot+Roundcube дополнительно есть сборщик почты Fetchmail для защиты от спама установлен SpamAssassin.
SpamAssassin работает и проверяет только почту, которая была получена из вне на почтовый адрес, помечает и отправляет в соответствующую папку, но почту, которую доставляет Fetchmail не проверяет совсем, а как сделать так, чтобы SpamAssassin проверял почту доставленную Fetchmail я не могу разобраться.
Конфиг фетча выглядит так.
set postmaster "postmaster"
set nobouncemail
set no spambounce
set properties ""
set syslogpoll mail.kz with proto POP3
user 'take-it@mail.kz' there with password '2312456' mda "/usr/sbin/sendmail -oem -f %F put-it@domain.kz" fetchallВ логе эксима я вижу, что фетч зашёл взял письмо и положил его в целевой ящик. Просматриваю заголовок сообщения и там нет никакой информации о проверки письма асасином. Если письмо приходит из внешки то в заголовках есть сообщение, что асасин его проверил, а вот фетч не проверяет.
Может кто сталкивался с подобной ситуацией и может подсказать как заставить SpamAssassin проверять почту сборщика?
> Добрый день!
> Может кто сталкивался с подобной ситуацией и может подсказать как заставить SpamAssassin
> проверять почту сборщика?вам еще нужен procmail
>> Добрый день!
>> Может кто сталкивался с подобной ситуацией и может подсказать как заставить SpamAssassin
>> проверять почту сборщика?
> вам еще нужен procmailА почему нельзя использовать Exim этот тоже же тоже майл агент или я что то не понимаю ?
> я что то не понимаю ?Фетч достает письмо с другого сервера, предназначенное, скорее всего, для чужого почтового домена. Если такое письмо вбросить в экзим он, скорее всего, отправит его наружу, обратно на исходный сервер. Ну, или вы создадите громадную таблицу исключений-соответствий-подмен адресов.
Поэтому, обычно, фетч выдергивает письма и складирует их в указанное место, обходя весь функционал МТА. И, разумеется, СА, который у вас дергается из экзима.
>> я что то не понимаю ?
> Фетч достает письмо с другого сервера, предназначенное, скорее всего, для чужого почтового
> домена. Если такое письмо вбросить в экзим он, скорее всего, отправит
> его наружу, обратно на исходный сервер. Ну, или вы создадите громадную
> таблицу исключений-соответствий-подмен адресов.
> Поэтому, обычно, фетч выдергивает письма и складирует их в указанное место, обходя
> весь функционал МТА. И, разумеется, СА, который у вас дергается из
> экзима.Если вы глянете моё сообщение ниже, то вы увидите, что я всё же заставил СА проверять почту, но он не дописывает в тело письма свои результаты и в итоге письмо попадает в ящик без очков за спам и каких либо пометок от СА, хотя в логах я вижу, что СА его проверил и назначил очки.
Но я всё же думаю, что это тоже не особо верно или я что то настраиваю не так, а что не так и как верно настроить не могу сообразить, уже идей больше нет.
Подправил конфиг так:
set postmaster "postmaster"
set nobouncemail
set no spambounce
set properties ""
set syslogpoll pop.yandex.ru with proto POP3
user 'take-it@yandex.ru' there with password '45646456' is 'put-it@domain.kz' here
smtp 192.168.20.3/25Так я вижу в логах эксима, что письма fetchmail пересылает как будто они с внешки.
В логах теперь видно, что эти письма проверяет и спамассасин и выставляет им очки. В случае с этим письмом письму было выставлено 6 очков, это спам.
11406 Mar 12 14:53:39 webserver fetchmail[49414]: Ошибка проверки сертификата сервера: unable to get local issuer certificate
11407 Mar 12 14:53:39 webserver fetchmail[49414]: This means that the root signing certificate (issued for /C=PL/O=Unizeto Technologies S.A./OU=Certum Certification Authority/
11408 Mar 12 14:53:39 webserver fetchmail[49414]: Ошибка проверки сертификата сервера: certificate not trusted
11409 Mar 12 14:53:39 webserver fetchmail[49414]: Warning: the connection is insecure, continuing anyways. (Better use --sslcertck!)
11410 Mar 12 14:53:40 webserver fetchmail[49414]: 1 сообщение для take-it@yandex.ru на pop.yandex.ru (2370 октетов).
11411 Mar 12 14:53:40 webserver spamd[47983]: spamd: connection from localhost [127.0.0.1]:57185 to port 783, fd 5.
11412 Mar 12 14:53:40 webserver spamd[47983]: spamd: setuid to admin succeeded.
11413 Mar 12 14:53:40 webserver spamd[47983]: spamd: checking message <10801011426150400@web29h.yandex.ru> for admin:1001.
11414 Mar 12 14:53:50 webserver spamd[47983]: spamd: identified spam (6.0/3.0) for admin:1001 in 10.0 seconds, 2893 bytes..
11415 Mar 12 14:53:50 webserver spamd[47983]: spamd: result: Y 6 - FREEMAIL_FROM,LONGWORDS,T_RP_MATCHES_RCVD,URIBL_BLACK,URIBL_DBL_SPAM scantime=10.0,size=2893,user=admin,uid=
11416 Mar 12 14:53:50 webserver fetchmail[49414]: считывается сообщение take-it@yandex.ru@pop.yandex.ru:1 из 1 (2370 октетов) очищено
11417 Mar 12 14:53:50 webserver spamd[47964]: prefork: child states: II.Но письмо не пометилось как спам, в теле письма так же нет записей о том, что его проверил спамассасин и присвоил ему какие то очки, а если это письмо прислать с внешки, то оно помечается как спам и попадает в соответствующую папку.
Как выяснить почему письмам, которые доставляет фетч и проверяет спамассасин в тело не дописывается результат проверки?
Разобрался в чём была проблема, немного не верно был написан конфиг exim подправил.
Было так:#spamassasin
accept senders = /usr/local/etc/exim/white.list
warn message = X-Spam-Status: Yes
hosts = !+relay_from_hosts
spam = admin:truewarn message = X-Spam-Score: $spam_score ($spam_bar)
hosts = !+relay_from_hosts
spam = admin:truewarn message = X-Spam-Report: $spam_report
hosts = !+relay_from_hosts
spam = admin:truewarn message = Subject: ***SPAM*** $h_Subject:
hosts = !+relay_from_hosts
spam = admindeny message = This message scored $spam_score spam points.
spam = admin:true
log_message = It`s SPAM!!!!
hosts = !+relay_from_hosts
condition = ${if >{$spam_score_int}{120}{1}{0}}accept
Подправил так:
#spamassasin
accept senders = /usr/local/etc/exim/white.list
# put headers in all messages (no matter if spam or not)
warn spam = admin:true
add_header = X-Spam-Score: $spam_score ($spam_bar)
add_header = X-Spam-Report: $spam_report# add second subject line with *SPAM* marker when message
# is over threshold
warn spam = admin
add_header = Subject: ***SPAM*** $h_Subject:warn message = X-Spam-Status: Yes
hosts = !+relay_from_hosts
spam = admin:truedeny message = This message scored $spam_score spam points.
spam = admin:true
log_message = It`s SPAM!!!!
hosts = !+relay_from_hosts
condition = ${if >{$spam_score_int}{120}{1}{0}}accept
И теперь спамассасин проверяет всю почту, и с внешки, и ту что доставляет фетч, ставит соответствующие пометки и убирает в папку спам согласно правилам.