[spamassassin+mysql+exim] пользовательские настроки

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
sourn
проходил мимо
Сообщения: 1
Зарегистрирован: 2012-01-05 21:05:04
Контактная информация:

[spamassassin+mysql+exim] пользовательские настроки

Непрочитанное сообщение sourn » 2012-01-05 21:34:21

Здравствуйте.

В наличии установлен и настроен exim4 + spamassassin 3.3.1

Задача состоит в том что бы установить плагин для squirrelmail который позволяет делать пользовательские настройки в spamassassin (кого в blacklist кого оставить решают сами пользователи) для этого был выбран чудо плагин sasql установка и настройка плагина прошла успешно, в spamassassin тоже были внесены изменения которые позволяют spamassassin брать настройки AWL (auto-white list) из базы данных, и снова все работает отлично.

НО. Принцип работы плагина и вся задача состоит в том что бы из userpref выбирались почтовые ящики определенных пользователей, то есть есть емейл test@domain.tld пользователь которого с помощью плагина успешно добавил email адрес spam@mail.tld в свой blacklist.

И вот приходит письмо от spam@mail.tld на test@domain.tld после чего начинается самое интересное...

Все почтовые пользователи хранятся в mysql потому spamd -q -x -c (именно с такими опциями запускается spamassassin) при сканировании почты не находит нужного пользователя и запускает скан от nobody. соответственно когда очередь доходит до проверки пользовательского awl очки спама не начисляются и письмо успешно доходит до получателя не смотря на то что получатель добавил его в свой банлист.

Вопрос. Как из базы данных в которой exim хранит почтовые аккаунты донести информацию для spamd что письмо предназначено test@domain.tld а не nobody?

spamassassin на работу с AWL настраивал по вот этому ману http://wiki.apache.org/spamassassin/UsingSQL и куче других ему подобных.

должен заметить что опция spamd -D -q не отрабатывает корректно предположительно потому что все почтовые аккаунты виртуальные. зато отлично работает если указать spamd -D -q -Q или spamd -D -q -u username но почта проверяется все равно как доставляемая для nobody

Конфиги пока не предоставил если кого заинтересует вопрос скажите что показать, выложу.

Всем заранее огромное спасибо за помощь.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ADRE
майор
Сообщения: 2641
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: [spamassassin+mysql+exim] пользовательские настроки

Непрочитанное сообщение ADRE » 2012-02-16 20:21:40

спамассассин запускается от того пользователя который указан в настройках. если спамасассин берёт конфиг из бд то там прописывает, но не суть.
В общем на руборде была статья как сделать чтоб спамассин проверял от нужного пользователя.
//del

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: [spamassassin+mysql+exim] пользовательские настроки

Непрочитанное сообщение xM » 2013-12-22 13:53:21

Насколько я понял, тут главная проблема в том, что в качестве RCPT TO может быть больше одного пользователя. Если делать проверку Spamassassin до начала процесса доставки, то не понятно, от какого пользователя делать проверки.
Отсюда напрашиваются два пути решения.
1. Использовать bayes и AWL базы Spamassassin в режиме site-wide, а персональные предпочтения пользователя корректировать используя user_prefs
2. Использовать проверки Spamassassin на уровне транспорта.
Стандартная связка Spamassassin - Exim под названием SA-Exim в связи с тем, что работает до транспортов, не имеет возможности корректно обрабатывать фильтрацию на уровне пользователя.
Как-то так.
Буду рад, если я ошибся в своих выводах и кто-то сумел реализовать per user проверку с помощью SA-Exim и сумеет это показать на конкретных конфигах.
IT voodoo blog https://kostikov.co

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: [spamassassin+mysql+exim] пользовательские настроки

Непрочитанное сообщение xM » 2013-12-23 0:20:51

В версии Exim 4.82 обнаружилась экспериментальная поддержка SMTP PRDR которая, очевидно, позволяет достичь искомого в данной теме
PRDR support
--------------------------------------------------------------

Per-Recipient Data Reponse is an SMTP extension proposed by Eric Hall
in a (now-expired) IETF draft from 2007. It's not hit mainstream
use, but has apparently been implemented in the META1 MTA.

There is mention at http://mail.aegee.org/intern/sendmail.html
of a patch to sendmail "to make it PRDR capable".

ref: http://www.eric-a-hall.com/specs/draft-hall-prdr-00.txt

If Exim is built with EXPERIMENTAL_PRDR there is a new config
boolean "prdr_enable" which controls whether PRDR is advertised
as part of an EHLO response, a new "acl_data_smtp_prdr" ACL
(called for each recipient, after data arrives but before the
data ACL), and a new smtp transport option "hosts_try_prdr".

PRDR may be used to support per-user content filtering. Without it
one must defer any recipient after the first that has a different
content-filter configuration. With PRDR, the RCPT-time check
for this can be disabled when the MAIL-time $smtp_command included
"PRDR". Any required difference in behaviour of the main DATA-time
ACL should however depend on the PRDR-time ACL having run, as Exim
will avoid doing so in some situations (eg. single-recipient mails).
IT voodoo blog https://kostikov.co