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

Исходное сообщение
"Перенаправление почты"

Отправлено gnomeby , 19-Фев-08 21:23 
Проблема: не могу настроить хитрое перенаправление почты.
ПО: exim

Задача:
Есть адрес, нужно сделать так, чтобы почта приходящая именно с этого адреса 1 перенаправлялась на другой адрес 2, а вся остальная почта перенправлялась на адрес 3. При всей, казалось бы примитивности задачи, я уже потерял всякую надежду.

Испробовал Address rewrite, он не подходит.
Испробовал System filter, он не подходит.


Содержание

Сообщения в этом обсуждении
"Перенаправление почты"
Отправлено Hetzer , 20-Фев-08 05:59 
>[оверквотинг удален]
>ПО: exim
>
>Задача:
>Есть адрес, нужно сделать так, чтобы почта приходящая именно с этого адреса
>1 перенаправлялась на другой адрес 2, а вся остальная почта перенправлялась
>на адрес 3. При всей, казалось бы примитивности задачи, я уже
>потерял всякую надежду.
>
>Испробовал Address rewrite, он не подходит.
>Испробовал System filter, он не подходит.

Решение таких задач достаточно тривиальны через механизмы  system filter и роутеров. Есть примеры как в faq так и в документации.

Покажите что пробовали и почему не подходит.


"Перенаправление почты"
Отправлено gnomeby , 20-Фев-08 12:19 
>Покажите что пробовали и почему не подходит.

Итак, есть 3 основных правила для почты:
1. Вся почта на строго определенный домен, назовем его example.com должна ходить без вопросов.
2. Почта с одного набора определённых адресов должна перенаправляться на другой набор.
3. Всё остальная почта должна уходить на тестовый ящик.

Текущие настройки такие:
1. Address rewriting (выполняет пункты 1 и 3):

*@example.com * tTq
* developer@company.com tT

2. System filter модифицирует заголовки для выполнения пункта 2, однако, к сожалению, это не влияет на список кому будет отправлено письмо уже никак.

if $sender_address contains "root@developer1" and not error_message then
        headers add "Cc: developer1@example.com"
        endif


"Перенаправление почты"
Отправлено Hetzer , 20-Фев-08 14:17 
>[оверквотинг удален]
>* developer@company.com tT
>
>2. System filter модифицирует заголовки для выполнения пункта 2, однако, к сожалению,
>это не влияет на список кому будет отправлено письмо уже никак.
>
>
>if $sender_address contains "root@developer1" and not error_message then
>        headers add "Cc: developer1@example.com"
>
>        endif

сорри, ничего не понял что на самом деле нужно сложив первый пост, постановку задачи и вариант решения.


"Перенаправление почты"
Отправлено gnomeby , 20-Фев-08 14:52 
Добре, давайте еще раз. На exim приходит письмо. Анализируя заголовки From и Envelope-To нужно сделать следущее:

1. Если в Envelope-To адрес соответствует маске *@example.com, то с письмо без всяких вопросов доставить на указанный адрес.

Мой вариант решения - В Address rewriting пишем строчку:
*@example.com * tTq


2. Если во From адрес root@developer1, то письмо перенаправить на developer1@example.com или как альтернатива послать копию на этот адрес.

Мой вариант решения - В System filter пишем:
if $sender_address contains "root@developer1" and not error_message then
        headers add "Cc: developer1@example.com"
        endif
Данный вариант отрабатывает, однако никуда никакая копия письма не уходит.


3. Всю остальную почту в целях безопасности отправлять на ящик developer@company.com.

Мой вариант решения - В Address rewriting пишем в конце строчку:
* developer@company.com tT

Вопрос: как сделать так, чтобы второе условие выполнялось?


"Перенаправление почты"
Отправлено Hetzer , 20-Фев-08 15:20 
>[оверквотинг удален]
>как альтернатива послать копию на этот адрес.
>
>Мой вариант решения - В System filter пишем:
>if $sender_address contains "root@developer1" and not error_message then
>        headers add "Cc: developer1@example.com"
>
>        endif
>Данный вариант отрабатывает, однако никуда никакая копия письма не уходит.
>
>Вопрос: как сделать так, чтобы второе условие выполнялось?

if $header_from: contains "root@developer1" then
    deliver <developer1@example.com>
endif



"Перенаправление почты"
Отправлено gnomeby , 20-Фев-08 15:38 
>if $header_from: contains "root@developer1" then
>    deliver <developer1@example.com>
>endif

Спасибо, теперь всё работает.


"Перенаправление почты"
Отправлено DarkHost , 20-Фев-08 13:25 
Задача элементарная. Разложите ее на "если"-"тогда", и все у вас получится.

"Перенаправление почты"
Отправлено gnomeby , 20-Фев-08 13:28 
>Задача элементарная. Разложите ее на "если"-"тогда", и все у вас получится.

Я разложил её уже много раз. Вопрос только в том, какую технологию использовать? Address rewrite? System Filter? ACL?


"Перенаправление почты"
Отправлено Matz , 28-Мрт-08 14:28 
if УСЛОВИЕ
then
    unseen deliver mail
endif

Не подскажите, как надо оформлять "mail", чтобы там можно было писать несколько адресов.
Что-то навроде: unseen deliver mail1@domain.com, mail2@domain.com
Только чтобы работало.

Или может не через системный фильтр сделать? А, нпример, через роуты?