The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"требуеться небольшая помощь написать правило exim"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"требуеться небольшая помощь написать правило exim"  +/
Сообщение от Moreh on 24-Сен-10, 08:50 
И так задача состоит в том что бы фильтровать письма на несуществующие адреса и перенаправять их на ящик error@local.domain, средствами system filter
Вот я сделал такое правило

Код: Выделить всё • Развернуть
if $recipients match "@local.domain"
then
if $recipients match "${lookup mysql{SELECT `goto` FROM `alias` WHERE \
                   `address`='$recipients' and `active`='1'}}"
then
else
seen deliver error@local.domain
finish
endif
endif


Понятно что оно немного не логичное, но уж только так работает оно я хз почему. Проблема в том что оно работает, если во втором случае match поменять на is, но тогда письма где в адресатах указан не один получатель, а два и более(а также те, где адресат указан с именем в <> скобках) тоже попадают в error. А в первом случае всё работает хорошо, только письма на не существующие адреса не уходят в еррор :). Прошу помощи как модифицировать правило, что бы работало так как нужно.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от SubGun (ok) on 24-Сен-10, 10:24 
Такое правило отобьет письмо, если хотя бы один адрес в списке получателей не существует. Используйте фильтрацию по "Envelope-to:". Думаю сами разберетесь на каком этапе появляется это поле в заголовках)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "требуеться небольшая помощь написать правило exim"  +1 +/
Сообщение от Moreh on 24-Сен-10, 10:41 
>Такое правило отобьет письмо, если хотя бы один адрес в списке получателей
>не существует. Используйте фильтрацию по "Envelope-to:". Думаю сами разберетесь на каком
>этапе появляется это поле в заголовках)

где же мне взять переменную которая соответствует полю Envelope-to

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от Moreh on 24-Сен-10, 10:54 
Envelope-to: system-filter
вот что содержит, не пойму что по этому полю можно фильтровать

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от SubGun (ok) on 24-Сен-10, 11:00 
>Envelope-to: system-filter
>вот что содержит, не пойму что по этому полю можно фильтровать

Ну почитайте вы про это поле.
http://exim.org

Exim’s transports have an option for adding an Envelope-to: header to a message when it is delivered, in exactly the same way as Return-path: is handled. Envelope-to: records the original recipient address from the messages’s envelope that caused the delivery to happen. Such headers should not be present in incoming messages, and this option causes them to be removed at the time the message is received, to avoid any problems that might occur when a delivered message is subsequently sent on to some other recipient.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от Moreh on 24-Сен-10, 11:34 
>Exim’s transports have an option for adding an Envelope-to: header to a
>message when it is delivered, in exactly the same way as
>Return-path: is handled. Envelope-to: records the original recipient address from the
>messages’s envelope that caused the delivery to happen. Such headers should
>not be present in incoming messages, and this option causes them
>to be removed at the time the message is received, to
>avoid any problems that might occur when a delivered message is
>subsequently sent on to some other recipient.

Ну насколько я понял, поле формируеться непосредственно при доставке получателю и должно якобы содержать единственного получателя, кому в данный момент письмо отправляется.
Но если учитывать, что системный фильтр выполняется самым первым,  до отправки, скажем так то поле не должно сформироваться, почему в нём написано system_filter для меня загадка..
И как может помоч это поле если системный фильтр  выполняется раньше чем должно сформироваться это поле :) Можно мне объяснить пожалуйста.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от SubGun (??) on 27-Сен-10, 15:52 
router1:
    driver = redirect
    domains = +local_domains
    message = User unknown!
    data = mail1@domain.ru

Поставьте последним роутером.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от Moreh on 28-Сен-10, 17:16 
> router1:
>     driver = redirect
>     domains = +local_domains
>     message = User unknown!
>     data = mail1@domain.ru
> Поставьте последним роутером.

так бы это подошло, но дело в том что в системном фильтре который выполняется раньше секции роутеров выполняется копирование входящих писем в ящик admin@local.domain. И получиться что сначала письмо скопируется в админ, а потом  отправиться назад, что соотвецтвенно не нужно потому что это письмо  получиться с ошибкой и должно будет отправиться на другой ящик error@local.domain
Надеюсь как то понятно описал :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от SubGun (ok) on 29-Сен-10, 11:48 
> так бы это подошло, но дело в том что в системном фильтре
> который выполняется раньше секции роутеров выполняется копирование входящих писем в ящик
> admin@local.domain. И получиться что сначала письмо скопируется в админ, а потом
>  отправиться назад, что соотвецтвенно не нужно потому что это письмо
>  получиться с ошибкой и должно будет отправиться на другой ящик
> error@local.domain
> Надеюсь как то понятно описал :)

Слушайте, ну не заставляйте все разжевывать. Я привел пример, а вы доработайте. Хотите, поставьте туда проверку наличия пользователя в базе, вставьте роутер в нужное место. Все элементарно.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от Moreh on 30-Сен-10, 14:05 
> Слушайте, ну не заставляйте все разжевывать. Я привел пример, а вы доработайте.
> Хотите, поставьте туда проверку наличия пользователя в базе, вставьте роутер в
> нужное место. Все элементарно.

Спасибо :) кое что прояснил для себя одна проблемка осталась

    driver = redirect
    unseen
    condition = ${if eq{} {${lookup mysql{SELECT goto FROM alias \
                WHERE (`address`='${quote_mysql:$local_part@$domain}' OR \
                       `address`='${quote_mysql:@$domain}') AND \
                       active='1'}}}{no}{yes}}
    data = admink@local.domain

вот этот роутер работает на вх. и исх. почту можно ли его как то модифицировать, что бы он работал тольно на входящую? ничего подобного не нашёл в гугле!
Или же  ничего не остаётся, как делать в секции транспортов копирование почты входящей


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от zerot email(ok) on 30-Сен-10, 14:13 
р работает на вх. и исх. почту можно ли его
> как то модифицировать, что бы он работал тольно на входящую? ничего
> подобного не нашёл в гугле!
> Или же  ничего не остаётся, как делать в секции транспортов копирование
> почты входящей

правильнее думать в категориях, что вся почта - входящая, а потом маршрутизируется далее
.
вы вполне можете написать правило, по которому роутер будет обрабатывать почту только с ваших локальных доменов, а ниже добавить другой именованый роутер, который наоборот будет обрабатывать почту только с НЕ локальных доменов, или же всех, не захваченных предыдущим
.
русскоязычная документация по эксиму доступна у лисяры на сайте
.
удачи

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "требуеться небольшая помощь написать правило exim"  +/
Сообщение от Moreh on 01-Окт-10, 10:56 
> вы вполне можете написать правило, по которому роутер будет обрабатывать почту только
> с ваших локальных доменов, а ниже добавить другой именованый роутер, который
> наоборот будет обрабатывать почту только с НЕ локальных доменов, или же
> всех, не захваченных предыдущим
> .
> русскоязычная документация по эксиму доступна у лисяры на сайте
> .
> удачи

как мне можно проверить валидность получателя кроме как роутерром accept??
не могу найти инфу, если  аналог переменной $sender_address для получателя в роутере redirect?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру