[Comm] Правила копирования писем в Postfix

Grigory Fateyev =?iso-8859-1?q?greg_=CE=C1_anastasia=2Eru?=
Чт Фев 17 21:00:19 MSK 2005


Hello, Кочетков!
16 Февраля 2005г. в 16:28 You wrote:

> Здравствуйте, community !
> 
> Хочется копировать всю почту приходящую на ящики пользователей.
> Причем не всем скопом, а по определенным правилам.
> Например ящик для копии задается по адресу назначения, теме, адресу
> отправителя.
> 
> Что счас имею: Postfix, вируальные пользователи в MySQL, Cyrus-IMAP,
> amavis-new, clamav.
> 
> Логичным представляется засунуть эти правила в MySQL.
> 
> Вроде где то видел вариант с использованием скрипта на perl, вот снова
> отыскать не могу.
> 
> Может быть есть какой-то разведанный путь ?

Цитата с opennet.ru (точный урл не помню):
 
 + казалось бы это всё, но нет. следующая таблица решает
            проблему 'старшего брата'. здесь мы не будем обсуждать
            моральную сторону этого вопроса, но ни для кого не секрет,
            что очень многие гендиры корпораций желают (и получают)
копии            всех писем сотрудникам на свой ящик. опция always_bcc в
            postfix решает этот вопрос, но мы же крутые админы и не
            хотим, чтобы начальник читал нашу личную почту, верно? да и
            не только нашу. всегда существуют исключения в виде
            симпатичных секретарш или других особей женского пола
которые            рады отблагодарить админа за его доброту. шутка ;-)
            примеры insert'ов демонстрируют систему работы скрипта,
            который обрабатывает эту таблицу. первое правило:
            поле type 'delivered-to'. этим правилом будут ловится все
            письма, у которых в служебной строке delivered-to встретился
            адрес, попавший под маску в регулярных выражениях,
            соответствующую полю mask (персонально для mysql не забываем
            экранировать знак back slash '\' им же самим, а для перловых
            регэкспов служебные символы). в поле forward_addr хранится
            адрес, на который нужно копировать письмо, если оно подошло
            под условия. поле what установлено в буковку 'i', что значит
            (i)nclude, т.е. включающее правило. таким образом в первом
            примере будет ловится вся почта для домена raven.elk.ru и
            копироваться на адрес me на raven.elk.ru.
            второе правило - это исключение из первого примера адреса
            test1 на raven.elk.ru. т.о. в комплексе этих двух правил на
            адрес me на raven.elk.ru будет копироваться вся почта для
домена            raven.elk.ru, исключая адрес test1 на raven.elk.ru.

create table forward(
 id int(10) unsigned not null auto_increment,
 type varchar(50) not null default 'delivered-to',
 mask varchar(255) not null default '.+',
 forward_addr varchar(255) not null default 'root',
 what char not null default 'i',
 comment text,
 primary key(id),
 key what(what),
 key type_mask(type, mask)
);

insert into forward(type, mask, forward_addr, what, comment)
 values('delivered-to', '[a-z0-9\- _]+\\@raven\\.elk\\.ru',
'me на raven.elk.ru','i', 'forwarding all mail for raven.elk.ru');

insert into forward(type, mask, forward_addr, what, comment)
 values('delivered-to', 'test1\\@raven\\.elk\\.ru', 'me на raven.elk.ru',
'e', 'ex clude forward test1 mail');


-- 
Всего наилучшего!
greg_[at]_anastasia_[dot]_ru Григорий.




Подробная информация о списке рассылки community