The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Exim+SpamAssassin: Перенос письма в папку СПАМ"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Открытые системы на сервере (Почта / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Exim+SpamAssassin: Перенос письма в папку СПАМ"  +/
Сообщение от dimmonspb (ok) on 13-Апр-10, 18:32 
Есть рабочая система Exim+SpamAssassin, которая проверяет письма и в письмах, которые она определяет как спам, в заголовок дописывается: *****SPAM*****

Действие это прописано в файле local.cf SpamAssassin`a:
rewrite_header Subject *****SPAM*****


В конфигурационном файле EXIM`a стоит метод доставки mysql_delivery
------------------------------------
mysql_delivery:
    driver = appendfile
    check_string = ""
    create_directory
    delivery_date_add
    directory = ${lookup mysql{SELECT CONCAT('/usr/spool', 'maildir') \ FROM 'mailbox' WHERE 'username'='${local_part}@${domain}'}}
    directory_mode = 770
    envelope_to_add
    group = mail
    maildir_format
    maildir_tag = ,S=$message_size
message_prefix = ""
    message_suffix = ""
    mode = 0600

---------------------------------------
Предположим, что домен: abc.ru и почта пользователя test@abc.ru

В итоге полученная почта сохраняется в:
/usr/spool/abc.ru/test@abc.ru/cur

А почта которая перенесена в спам через web-интерфейс помещается в:
/usr/spool/abc.ru/test@abc.ru/.Junk/cur

Как в конфиг EXIM`a дописать чтобы письмо с темой *****SPAM***** переносилось в папку СПАМ автоматически?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Exim+SpamAssassin: Перенос письма в папку СПАМ"  +/
Сообщение от dimmonspb (ok) on 14-Апр-10, 16:06 
Ну подскажите решение проблемы! Очень надо!
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Exim+SpamAssassin: Перенос письма в папку СПАМ"  +/
Сообщение от Виталий (??) on 15-Апр-10, 08:35 
>Ну подскажите решение проблемы! Очень надо!

sieve?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Exim+SpamAssassin: Перенос письма в папку СПАМ"  +/
Сообщение от den (??) on 15-Апр-10, 10:47 
>>Ну подскажите решение проблемы! Очень надо!
>
>sieve?

можно исрользуя system_filter

if not first_delivery
then
    finish
endif

if  $h_X-Spam-Status: CONTAINS "Yes"
       or      
    $h_X-Spam-Flag: CONTAINS "Yes"
then
    if foranyaddress $recipients ($thisaddress contains "@domen.com")
    then
        save /var/vmail/domen.com/spam/Maildir/
        seen finish
    endif
endif

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Exim+SpamAssassin: Перенос письма в папку СПАМ"  +/
Сообщение от DeadLoco (ok) on 15-Апр-10, 11:13 
>>>Ну подскажите решение проблемы! Очень надо!
>>
>>sieve?
>
>можно исрользуя system_filter

Можно, но если для РОР/ІМАР используется dovecot, то логично использовать его для LDA - тогда появится возможность sieve/managesieve

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Exim+SpamAssassin: Перенос письма в папку СПАМ"  +/
Сообщение от dimmonspb (ok) on 15-Апр-10, 18:44 
>>>>Ну подскажите решение проблемы! Очень надо!
>>>
>>>sieve?
>>
>>можно исрользуя system_filter
>
>Можно, но если для РОР/ІМАР используется dovecot, то логично использовать его для
>LDA - тогда появится возможность sieve/managesieve

Почитав про Sieve понял, что нужно написать отдельный скрипт примерно такого вида:
require "fileinto";
if header :contains ["subject"] ["*****SPAM*****"] {
                fileinto "INBOX.Junk";}


Но вот куда его добавить чтобы он заработал я вообще не понимаю. Объясните пожалуйста...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Exim+SpamAssassin: Перенос письма в папку СПАМ"  +/
Сообщение от DeadLoco (ok) on 15-Апр-10, 19:47 
>Почитав про Sieve понял, что нужно написать отдельный скрипт примерно такого вида:
>
>require "fileinto";
>if header :contains ["subject"] ["*****SPAM*****"] {
>            
>    fileinto "INBOX.Junk";}
>
>
>Но вот куда его добавить чтобы он заработал я вообще не понимаю.
>Объясните пожалуйста...

Довекот имеет дефолтное сито, которое применяется при вызове ЛДА. В конфиге это выглядит так:

protocol lda {
  ....
  mail_plugins = quota sieve
  mail_plugin_dir = /usr/local/lib/dovecot/lda
  sieve_global_path = /usr/local/etc/dovecot/spam.sieve  // - вот это путь к глобальному ситу
  ....
}

Имейте в виду, что при обращении ЛДА к ситу, оно компилируется в байт-код,  в файл с именем spam.svbin - поэтому на папку /usr/local/etc/dovecot/ должны быть установлены права, разрешающие ЛДА туда писать.

Из-за того, что существуют пользовательские сита, нужно добавить строки в раздел плагинов:

plugin {
  ....
  sieve_global_path = /usr/local/etc/dovecot/spam.sieve
  sieve_global_dir = /usr/local/etc/dovecot
  sieve_dir = /var/mail/%n
  sieve = /var/mail/%n/.dovecot.sieve
  ....
}

Я пока в процессе выяснения, как заставить довекот-ЛДА отрабатывать ОБА сита - и глобальное, и пользовательское. Сейчас у меня ЛДА если обнаруживает пользовательское сито, сформированное через managesieve, то выполняет ТОЛЬКО его. А если не обнаруживает - то глобальное. В глобальном у меня прописано только перенос письма с моим хедером в пользовательскую папку "Спам":

/usr/local/etc/dovecot/spam.sieve
--------8<---------------------
require "fileinto";
if exists "X-Spam-Ooops"
{
fileinto "Junk";
}
--------8<---------------------

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

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Exim+SpamAssassin: Перенос письма в папку СПАМ"  +/
Сообщение от DeadLoco (ok) on 15-Апр-10, 19:52 
Ага, еще забыл сказать, что в конфиге экзима у меня определен транспорт вот так:

dovecot_lda:
        driver          = pipe
        command         = /usr/local/libexec/dovecot/deliver -d $local_part@$domain
        message_prefix  =
        message_suffix  =
        delivery_date_add
        log_output
        user            = mailnull


В роутере, который приводит к локальной доставке, просто указываем этот транспорт:

local_user:
        driver          = accept
        condition       = блаблабла
        transport       = dovecot_lda
        .....

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру