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

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

Добавлено: 2008-10-29 8:30:02
sad
доброго времени суток. подскажите как правильно написать условие. Есть задача,
пользователям у которых в базе данных в поле 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} }}

не знаю.

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

Добавлено: 2008-10-29 8:52:53
Alex Keda
нифига не понял....

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

Добавлено: 2008-10-29 9:16:32
sad
есть пользователь
vasya@domain.ru
в таблице mailbox
username = vasya@domain.ru
spam_check = 0 (а может 1,2,3)

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

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

Добавлено: 2008-10-29 9:47:24
gruy
У меня похожая ситуация, только проще, сделал два варианта: удалять спам или переносить в отдельную папку пользователю (параметр 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

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

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