Страница 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 мегабайт.
Само копирование при этом работает исправно.
Я тут смотрю и понимаю что работы во всём этом — целина не паханная. Ведь есть ещё и просто рассылки, малоинтересные для копирования, и уйма личных фотографий, занимающих ограниченное место на серверах, и пересылка макетов и роликов для рекламы, и просто массовая рассылка одного и того же.

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