Проверка/непроверка на спам

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
sad
ефрейтор
Сообщения: 54
Зарегистрирован: 2007-05-22 22:04:29
Контактная информация:

Проверка/непроверка на спам

Непрочитанное сообщение sad » 2008-10-29 8:30:02

доброго времени суток. подскажите как правильно написать условие. Есть задача,
пользователям у которых в базе данных в поле spam_check стоит
0 не проверять на спам
1 проверять на спам и укладывать в папку Junk при словии что спам
2 проверять на спам, но доставлять в INBOX с помеченными хидерами(как это сам dspam делает при обработке)
3 проверять на спам и удалять при условии что спам.

решил делать по порядку, т.е сначала проверять или не проверять на спам. решил в роутах проверки на спам(dspam)
добавить условие, мол если 0 то не проверять

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

dspam_spamscan_router:
driver = accept
 domains = +local_domains
 no_verify
 condition = "${if and {{$received_protocol}{spam-scanned}}{!eq {$received_protocol}{local}} } {1}{0}}"
 transport = dspam_spamcheck_transport
 require_files = /usr/local/bin/dspam
 address_test = false
вот как сюда вкорячить (знаю что не верно написано, помоги правильно написать плиз)

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

${{lookup mysql{SELECT `spam_check` FROM `mailbox` WHERE   `username`='${quote_mysql:$local_part@$domain}'}{0} }}

не знаю.

Хостинговая компания 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/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Проверка/непроверка на спам

Непрочитанное сообщение Alex Keda » 2008-10-29 8:52:53

нифига не понял....
Убей их всех! Бог потом рассортирует...

sad
ефрейтор
Сообщения: 54
Зарегистрирован: 2007-05-22 22:04:29
Контактная информация:

Re: Проверка/непроверка на спам

Непрочитанное сообщение sad » 2008-10-29 9:16:32

есть пользователь
vasya@domain.ru
в таблице mailbox
username = vasya@domain.ru
spam_check = 0 (а может 1,2,3)

так вот письмо приходит на vasya@domain.ru
хочется в зависимости от spam_check делать или неделать те действия что описаны выше под циферками.

Аватара пользователя
gruy
рядовой
Сообщения: 33
Зарегистрирован: 2008-08-14 16:01:33

Re: Проверка/непроверка на спам

Непрочитанное сообщение gruy » 2008-10-29 9:47:24

У меня похожая ситуация, только проще, сделал два варианта: удалять спам или переносить в отдельную папку пользователю (параметр spamdelete):

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

dspam_delivery_router:
        driver          = accept
        domains         = +local_domains
        condition       = ${if and { \
                                        {match{$h_X-DSPAM-Result:}{Spam}} \
                                        {eq {${lookup mysql{select users.spamdelete from users, domains \
                                                where localpart = '${quote_mysql:$local_part}' \
                                                and domain = '${quote_mysql:$domain}' \
                                                and users.spamdelete = '0' \
                                                and users.domain_id=domains.domain_id}}}{0} \
                                        }} {yes}{no} }
        transport       = dspam_delivery
        no_more


dspam_delete_router:
        driver          = redirect
        allow_fail
        data            = :blackhole:
        condition       = ${if and { \
                                        {match{$h_X-DSPAM-Result:}{Spam}} \
                                        {eq {${lookup mysql{select users.spamdelete from users, domains \
                                                where localpart = '${quote_mysql:$local_part}' \
                                                and domain = '${quote_mysql:$domain}' \
                                                and users.spamdelete = '1' \
                                                and users.domain_id=domains.domain_id}}}{1} \
                                        }} {yes}{no} }
        no_more

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

dspam_delivery:
        driver = appendfile
        create_directory = true
        envelope_to_add
        delivery_date_add
        return_path_add
        mode = 0600
        maildir_format = true
        directory = ${lookup mysql{select concat(`smtp`,'/','.Spam') from users,domains \
                where localpart = '${quote_mysql:$local_part}' \
                and domain = '${quote_mysql:$domain}' \
                and users.domain_id = domains.domain_id}}
        message_prefix =
        message_suffix =
        user = exim
        group = mail

sad
ефрейтор
Сообщения: 54
Зарегистрирован: 2007-05-22 22:04:29
Контактная информация:

Re: Проверка/непроверка на спам

Непрочитанное сообщение sad » 2008-10-29 11:13:07

Спасибо, то что надо.
Скажите а сильно "тормозит/нагружает" кол-во проверок в condition, при условии что это не sql запросы.
и кол-во роутеров влияет? если их 5-7 штук разных.