URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 55951
[ Назад ]

Исходное сообщение
"Дублирование почты в postfix'е на другой ящик"

Отправлено RTzRa , 27-Апр-05 10:55 
Всем привет. Впопрос по postfix.
Нужно дублировать всю входящую/исходящую почту что идет через постфикс, за исключением 2-3 ящиков.
Делаю как пишут умные люди:

/etc/postfix/main.cf:
sender_bcc_maps = regexp:/etc/postfix/sender_bcc_regexp

/etc/postfix/sender_bcc_regexp:
!/^(name1|name2|name3)./ backup@domain.ru

Проверяю как работает regexp:
postmap -fq - regexp:/etc/postfix/filename <test
где содержимое test:
name1@domain.ru
noname@domain.ru

Правила отрабатываются: видно только noname@domain.ru

НО смотря логи вижу что почта для name1,name1,name3 все равно дублируется на backup@domain.ru

Postfix 2.2.2, последний...

Чего я не понимаю?


Содержание

Сообщения в этом обсуждении
"Дублирование почты в postfix'е на другой ящик"
Отправлено jonatan , 27-Апр-05 11:14 
>/etc/postfix/sender_bcc_regexp:
>!/^(name1|name2|name3)./ backup@domain.ru

ИМХО правильно будет без точки
!/^(name1|name2|name3)/ backup@domain.ru


"Дублирование почты в postfix'е на другой ящик"
Отправлено RTzRa , 27-Апр-05 11:31 
>>/etc/postfix/sender_bcc_regexp:
>>!/^(name1|name2|name3)./ backup@domain.ru
>
>ИМХО правильно будет без точки
>!/^(name1|name2|name3)/ backup@domain.ru

Попробовал - тоже самое.
В regexp'ах плаваю, помогайте!


"Дублирование почты в postfix'е на другой ящик"
Отправлено jonatan , 27-Апр-05 11:58 
1. sender_bcc_maps позволит копировать почту, адрес отправителя которой имеется в sender_bcc_regexp. Поэтому речь не может идти о копировании всей входящей/исходящей почты, как Вы указывали.
2. В данном случае
!/^(name1|name2|name3)/ backup@domain.ru
поиск адресов будет идти в $myorigin, $mydestination, $inet_interfaces или $proxy_interfaces. Вам необходимы локальные адреса?

"Дублирование почты в postfix'е на другой ящик"
Отправлено RTzRa , 27-Апр-05 12:24 
>1. sender_bcc_maps позволит копировать почту, адрес отправителя которой имеется в sender_bcc_regexp. Поэтому
>речь не может идти о копировании всей входящей/исходящей почты, как Вы
>указывали.
>2. В данном случае
>!/^(name1|name2|name3)/ backup@domain.ru
>поиск адресов будет идти в $myorigin, $mydestination, $inet_interfaces или $proxy_interfaces. Вам необходимы
>локальные адреса?

У меня есть на текущий момент 100 ящиков, надо чтобы почта входящая и исходящая для 97 ящиков копировалась в отдельный ящик - backup@domain.ru.

Если я пишу !/^(name1|name2|name3)/ backup@domain.ru то насколько я понимаю это условие расшифровывается как "все, что не содержит name1, name2, name3 писать в backup@domain.ru". Я правильно понимаю?

И я использую как sender_bcc_maps так и recipient_bcc_maps чтобы и исходящая писалась и входящая.


"Дублирование почты в postfix'е на другой ящик"
Отправлено rtzra , 27-Апр-05 12:40 
Примечание: если пишу /^(name1|name2|name3)/ backup@domain.ru (без восклицательного знака в начале) то копируется почта ТОЛЬКО для указанных ящиков - name1, name2, name3.

"Дублирование почты в postfix'е на другой ящик"
Отправлено jonatan , 27-Апр-05 12:44 
>Если я пишу !/^(name1|name2|name3)/ backup@domain.ru то насколько я понимаю это условие расшифровывается
>как "все, что не содержит name1, name2, name3 писать в backup@domain.ru".
>Я правильно понимаю?
man 5 postconf

sender_bcc_maps (default: empty)
...
       The table search order is as follows:

       -      Look  up  the  "user+extension@domain.tld" address including the
              optional address extension.

       -      Look up  the  "user@domain.tld"  address  without  the  optional
              address extension.

       -      Look  up the "user+extension" address local part when the sender
              domain equals  $myorigin,  $mydestination,  $inet_interfaces  or
              $proxy_interfaces.

       -      Look  up  the  "user"  address local part when the sender domain
              equals   $myorigin,    $mydestination,    $inet_interfaces    or
              $proxy_interfaces.

       -      Look up the "@domain.tld" part.
...


"Дублирование почты в postfix'е на другой ящик"
Отправлено rtzra , 27-Апр-05 12:51 
Ман прочитан первым делом. Порядок поиска понятен, но какое отношение он имеет к выражению regexp'а ?

"Дублирование почты в postfix'е на другой ящик"
Отправлено jonatan , 27-Апр-05 13:17 
regexp правильный

postmap -fq test regexp:/etc/postfix/sender_bcc_regexp
backup@domain.ru

postmap -fq name1 regexp:/etc/postfix/sender_bcc_regexp
postmap -fq name2 regexp:/etc/postfix/sender_bcc_regexp
postmap -fq name3 regexp:/etc/postfix/sender_bcc_regexp
ничего не находят.

Попробуйте такие вараинты:
!/(name1|name2|name3)/ backup@domain.ru
!/(name1|name2|name3)@local.tld/ backup@domain.ru


"Дублирование почты в postfix'е на другой ящик"
Отправлено rtzra , 27-Апр-05 13:25 
Оба нерабочие. ;-(

"Дублирование почты в postfix'е на другой ящик"
Отправлено jonatan , 27-Апр-05 13:31 
Сори, правильно конечно так
!/(name1|name2|name3)@local\.tld/ backup@domain.ru
но думаю это не поможет. А если указать пока только один?
!/^name1/ backup@domain.ru

"Дублирование почты в postfix'е на другой ящик"
Отправлено rtzra , 27-Апр-05 13:37 
В общем, правила с "!" нерабочие - без отрицания все работает как часы. Но не хочется получать геморрой с редактированием списка из 100 адресов и потом за ним наблюдать.  ;-(
Спасибо за помощь, буду думать дальше.

"Дублирование почты в postfix'е на другой ящик"
Отправлено jonatan , 27-Апр-05 14:37 
Странно, проверил у себя - все работает.

mydestination = ..., local.tld

!/^(name1|name2)/   user@local.tld

Проверяю через telnet
MAIL FROM: name1@local.tld
или
MAIL FROM: name2@local.tld
копия письма не уходит на user@local.tld.
MAIL FROM: test@local.tld
или любой другой адрес - копия уходит.


"Дублирование почты в postfix'е на другой ящик"
Отправлено unk , 28-Апр-05 10:36 
>НО смотря логи вижу что почта для name1,name1,name3 все равно дублируется на
>backup@domain.ru
>Чего я не понимаю?
Например, то что sender_bcc_maps не имеет ни кого отношения к "почта для" nameN

"Дублирование почты в postfix'е на другой ящик"
Отправлено rtzra , 28-Апр-05 13:56 
>>НО смотря логи вижу что почта для name1,name1,name3 все равно дублируется на
>>backup@domain.ru
>>Чего я не понимаю?
>Например, то что sender_bcc_maps не имеет ни кого отношения к "почта для"
>nameN

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


"Дублирование почты в postfix'е на другой ящик"
Отправлено unk , 28-Апр-05 14:08 
так у вас заработало решение jonatan'a?


"Дублирование почты в postfix'е на другой ящик"
Отправлено Sergey , 29-Май-06 16:50 
>т.к. мне надо копировать и для входей и исходящей почты, то использованы
>обе настройки
Вот тут есть примерно про тоже, что нужно, и про регэкспы
http://www.opennet.me/base/net/postfix_tls.txt.html, а вот здеся просто разбирается вопрос о бакапе почты.
http://www.postfix.ru/viewtopic.php?p=452&
плюс еще вот http://www.opennet.me/openforum/vsluhforumID3/12241.html если используется MySQL. Я использовал на основе последнего, вполне работает. У меня правда юзерей меньше, поэтому обхожусь без регэкспов..