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

Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-02-25 20:47:58
Grass_snake
Всё сделал как описано в статье "Связка exim и courier-imap" (http://www.lissyara.su/?id=1175). Копирование нужных писем работает в полный рост. Даже слишком. :( За 2 недели уже накопировалось больше 2-х гигабайт.

В связи с такими угрожающими темпами возникает вопрос. А можно ли отсеивать некоторые письма по размеру? Или содержимому (тип приаттаченного файла, какие-либо текстовые шаблоны)?

Самостоятельно разобраться в этой задаче не могу. Заранее спасибо за помощь.

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-02-26 3:28:48
zingel

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

find /путь/до/папки  -type f |xargs ls -s | sort -rn
и если много будет вставить в xargs не ls, а rm

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-02-26 22:25:33
Grass_snake
zingel писал(а):

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

find /путь/до/папки  -type f |xargs ls -s | sort -rn
и если много будет вставить в xargs не ls, а rm
Как я понимаю, это предлагается запускать периодически руками?

Если совсем никак иначе, то буду делать так. Но хотелось бы что "само" работало. Прямо в скрипте copy_mail.conf. Так можно сделать?

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-03-03 20:49:58
Grass_snake
Так что же, нет никакого способа отсеивать слишком большие письма для копирования? Я уже рума подустал удалять монструозные послания с фотографиями и макетами газет. :(

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-03-06 10:50:19
Grass_snake
Попытался сам решить свою задачу, немного поменял system_filter:

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

if $recipients is "${lookup mysql{SELECT `address` FROM `alias` WHERE \
                   `address`='$recipients' AND `copy_mail`='1' LIMIT 1}}" and $message_size is below 10M
 then
                     unseen deliver mail-copy-mailbox@xxxxx.xx
endif
Но это работает так же как и раньше - копируется вся подряд, а не только то что меньше 10 мегабайт. :(
Кто может объяснить где я ошибся?

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-03-06 22:47:41
Alex Keda
разбей на два вложенных, для начала

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-03-07 11:04:25
paix
меня заинтересовал топик ;) а именно копирование всей почты.
Но делать все это на отдельный ящик слишком неудобно.

Не подскажут ли господа, как делать копию проходящей почты в отдельную директорию, где почта будет сортироваться по локальному отправителю\получателю, ну и потом архивировать ее ?

ЗЫ. с юридическими аспектами ознакомлен. почта внутренняя.

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-03-07 12:56:40
Grass_snake
lissyara писал(а):разбей на два вложенных, для начала
Вот так вот?

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

if $message_size is below 10M
    then
if $recipients is "${lookup mysql{SELECT `address` FROM `alias` WHERE \
                   `address`='$recipients' AND `copy_mail`='1' LIMIT 1}}"
 then
           unseen deliver mail-copy-mailbox@xxxxx.xx
 endif
endif
Уже делал. Тоже не работает. А понять почему — знаний не хватает.

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-03-08 19:00:47
Alex Keda
Grass_snake писал(а):
lissyara писал(а):разбей на два вложенных, для начала
Вот так вот?

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

if $message_size is below 10M
    then
if $recipients is "${lookup mysql{SELECT `address` FROM `alias` WHERE \
                   `address`='$recipients' AND `copy_mail`='1' LIMIT 1}}"
 then
           unseen deliver mail-copy-mailbox@xxxxx.xx
 endif
endif
Уже делал. Тоже не работает. А понять почему — знаний не хватает.
ну, а какое именно не работает?

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-03-08 19:19:16
Alex Keda
2 paix

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

# routing for 'input' mailbox
user_input:
        driver          = redirect
        local_parts     = input
#       data            = /mail/archive/input/${length_10:$tod_log}/${lc:$recipients}/$message_exim_id.eml
        data            = /mail/archive/input/${length_10:$tod_log}/${address:${lc:$h_X-mail-to:}}/$message_exim_id.eml
        file_transport  = address_file

# routing for 'output' mailbox
user_output:
        driver          = redirect
        local_parts     = output
        data            = /mail/archive/output/${length_10:$tod_log}/${lc:$sender_address}/$message_exim_id.eml
        file_transport  = address_file

viruses:
        driver          = redirect
        local_parts     = viruses
        data            = /mail/archive/viruses/${length_10:$tod_log}/$message_exim_id.eml
        file_transport  = address_file
на хосте с которого копируется почта (архив, с которого строки выше - на другом хосте)

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

# копирование проходящей почты.
# если пришла с роутера - исходящая, если не с роутра - входящая
#if $sender_host_address match 192.168.100.3
# в  $acl_m3 - IP роутера
if $sender_host_address match $acl_m3
then
        # added by lissyara 2008-04-17
        if $received_protocol does not match spam-scanned
        then
                # исходящая
                unseen  deliver output@mail-gw.xxx.local
        endif
else
        if $received_protocol does not match local
        then
                # входящая
                #logwrite "$tod_log $message_exim_id: recipients = $recipients"
                headers remove X-mail-to:
                headers add "X-mail-to: $recipients"
                unseen  deliver input@mail-gw.xxx.local
        endif
endif

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-03-08 21:19:54
Grass_snake
lissyara писал(а): ну, а какое именно не работает?
То, что должно отбрасывать все письма болше 10 мегабайт.

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

if $message_size is below 10M
    then
Само копирование при этом работает исправно.


Я тут смотрю и понимаю что работы во всём этом — целина не паханная. Ведь есть ещё и просто рассылки, малоинтересные для копирования, и уйма личных фотографий, занимающих ограниченное место на серверах, и пересылка макетов и роликов для рекламы, и просто массовая рассылка одного и того же. :cz2:

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-03-09 9:36:32
paix
2 lissyara

Спасибо! круто! ;)
у меня кроме просто желания перевести локальный почтовик с постфикса на экзим, появилась еще конкретная аргументация )

я еще не доконца понял как оно работает, но тут не попробуеш - не узнаеш ;)

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-04-17 11:30:47
tema_c
А можно ли каким-то образом сравнить $recipients с +local_domains и если получатель из локального домена то копию не делать (для исходящей почты)
И соответственно для входящей.. если $senred_address из +local_domains то тоже не делать копию.

Метод тыка не сработал, а в синтаксис не могу въехать..
Помогите плиз..
Начальство своей параноей достало((

Re: Копирование почты в отдельный ящик с условиями.

Добавлено: 2009-04-19 22:23:56
tema_c
ну хоть ткните где почитать про спицифику синтаксиса system-filter