Страница 1 из 1
копирование in/out почты
Добавлено: 2007-08-14 11:00:12
Магистр
Есть необходимость копировать почту приходящую с определенного домена копировать в к.-л. почтовый ящик. Также всю исходящую почту на тот домен надо копировать в другой почтовый ящик. Можно ли это реализовать написав свой роутер (думаю можно)... если все таки можно, то как проверять в приходящей почте домен отправителя, а в исходящей -- получателя?
Re: копирование in/out почты
Добавлено: 2007-08-14 11:34:12
schizoid
а если алиас ?
Re: копирование in/out почты
Добавлено: 2007-08-14 11:38:28
dikens3
Можно системным фильтром воспользоваться:
Код: Выделить всё
# Exim filter
if error_message then finish endif # Не отправляем рикошеты
logfile /var/log/exim/system-filter.log
# Копируем почту от этих отправителей и определённому получателю
if $sender_address: match "^(smi@grw.ru)" and
$recipients: contains "user@mydomain.ru"
then
unseen deliver admin@mydomain.ru # Копируем на этот адрес
endif
# Перенаправляем входящую почту идущую от некоторых E-Mail'ов и определённым получателям
if $sender_address: match "(news@insur-info.ru|pg@www.fas.gov.ru|apache@creep.achbank.com)" and
$recipients: contains "user@mydomain.ru"
then
deliver admin@mydomain.ru # Перенаправляем на этот адрес
На основе этого изучай системный фильтр и сделать там можно достаточно много.
Re: копирование in/out почты
Добавлено: 2007-08-14 11:47:23
Магистр
спсб... будем творить!!!
Re: копирование in/out почты
Добавлено: 2007-08-14 11:51:41
Магистр
а можно в левой части адреса заместо имени ящика поставить "*" , что бы правила распространялись на весь домен целиком или просто поле слева от @ пустым оставить?
Re: копирование in/out почты
Добавлено: 2007-08-14 12:01:28
Магистр
Код: Выделить всё
if $recipients is "*@company.domain"
then
unseen deliver out-mail@my.domain
endif
if $sender_address is "*@company.domain"
then
unseen deliver in-mail@my.domain
endif
будет ли эта штука выполнять то что от нее требуется?...
Re: копирование in/out почты
Добавлено: 2007-08-14 12:11:28
dikens3
Я синтаксис не помню точно.
Т.е. IS может не поддерживать "*", т.е. REGEXP
Возможно его придётся заменить на match
А так да, нормально.
Re: копирование in/out почты
Добавлено: 2007-08-14 12:51:32
Гость
всмысле "*" заменить на match?
А что есть IS и REGEXP?
Re: копирование in/out почты
Добавлено: 2007-08-14 13:09:20
dikens3
IS это точное совпадение, т.е. в твоём случае сработает если E-MAIL будет:
*@company.domain
MATCH - включение REGXP (Обработка спец. символов), т.е. в твоём случае сработает если E-MAIL будет:
user1@company.domain
user2@company.domain
user3@company.domain
user4@company.domain
И т.д.
Т.е. * - любое количество символов.
В первом * - это локальная часть.
Хотя не помню синтаксис, но лучше match
Re: копирование in/out почты
Добавлено: 2007-08-14 13:18:56
Магистр
хм... а как узнать каким именно образом обрабатывается моя запись IS или REGEXP?
Re: копирование in/out почты
Добавлено: 2007-08-14 13:23:02
dikens3
Re: копирование in/out почты
Добавлено: 2007-08-14 13:32:37
Магистр
теперь все встало на свои места... спсб! щас все енто хоз-во тестить нада...
Re: копирование in/out почты
Добавлено: 2007-08-14 13:41:37
Магистр
хм.... не копируется...А можно ли узнать считывается ли вообще файл /usr/local/etc/exim/copy_mail.conf
Re: копирование in/out почты
Добавлено: 2007-08-14 13:43:16
Магистр
извините поторопился.... в конфиге строчка закоментирована была...
(не ругайтесь сильно)
Re: копирование in/out почты
Добавлено: 2007-08-14 14:12:43
Магистр
В логах пишет
Код: Выделить всё
2007-08-14 16:04:28 1IKuCJ-0000En-RJ Error in system filter: error while compiling regular expression "*@company.domain": nothing to repeat at offset 0
А вообще без "*" будет работать... (Спрашиваю т.к. проверить не сразу смогу)
Re: копирование in/out почты
Добавлено: 2007-08-14 14:27:08
dikens3
Должно работать и без *, только опять же используй contains или match, а не IS
Re: копирование in/out почты
Добавлено: 2007-08-14 14:45:42
Магистр
Всем спасибо за внимание -- работает...
вот чем все это закончилось:
Код: Выделить всё
root: /home/user=> vim /usr/local/etc/exim/copy_mail.conf
logfile /var/log/exim/mainlog
if $recipients matches "@comrany.domain"
then
unseen deliver out_mail@my.domain
endif
if $sender_address matches "@company.domain"
then
unseen deliver in_mail@my.domain
endif
да и не забудте раскоментировать строчку в конфиге Exim`а
Код: Выделить всё
system_filter = /usr/local/etc/exim/copy_mail.conf
Re: копирование in/out почты
Добавлено: 2007-08-15 10:06:51
Магистр
а вот еще вопрос можно ли почту на несколько ящиков копировать?
Код: Выделить всё
root: /home/user=> vim /usr/local/etc/exim/copy_mail.conf
logfile /var/log/exim/mainlog
if $recipients matches "@comrany.domain"
then
unseen deliver out_mail_1@my.domain
unseen deliver out_mail_2@my.domain
unseen deliver out_mail_3@my.domain
endif
Re: копирование in/out почты
Добавлено: 2007-08-15 13:36:26
Alex Keda
ну ты попробуй....
Re: копирование in/out почты
Добавлено: 2007-08-16 10:52:00
Магистр
Как то не стабильно копирует... Либо не копирует вовсе, либо копирует не на все адреса, либо на все...
Может есть какой-нить другой способ копирования почты... (начальнику не нравится текущее положение дел:)
Re: копирование in/out почты
Добавлено: 2007-08-16 11:21:59
Alex Keda
в логах все причины описаны почему и как.
в дебаге оно даже наглядно видно будет
Re: копирование in/out почты
Добавлено: 2007-08-16 13:27:07
Магистр
хм.. в логах по этому поводу последняя запись 2 дня назад, когда ошибки в синтаксисе были... щас тишина
Re: копирование in/out почты
Добавлено: 2007-08-16 13:28:33
Магистр
а вообще данная контрукция верна?
Код: Выделить всё
if $recipients matches "@comrany.domain"
then
unseen deliver out_mail_1@my.domain
unseen deliver out_mail_2@my.domain
unseen deliver out_mail_3@my.domain
endif
Re: копирование in/out почты
Добавлено: 2007-08-16 13:40:09
Магистр
быть может перезапись заголовков мешает?
Код: Выделить всё
begin rewrite
*@my.domain office@my.domain f
*@my.domain $1@my.domain r