Проблема: не могу настроить хитрое перенаправление почты.
ПО: eximЗадача:
Есть адрес, нужно сделать так, чтобы почта приходящая именно с этого адреса 1 перенаправлялась на другой адрес 2, а вся остальная почта перенправлялась на адрес 3. При всей, казалось бы примитивности задачи, я уже потерял всякую надежду.Испробовал Address rewrite, он не подходит.
Испробовал System filter, он не подходит.
>[оверквотинг удален]
>ПО: exim
>
>Задача:
>Есть адрес, нужно сделать так, чтобы почта приходящая именно с этого адреса
>1 перенаправлялась на другой адрес 2, а вся остальная почта перенправлялась
>на адрес 3. При всей, казалось бы примитивности задачи, я уже
>потерял всякую надежду.
>
>Испробовал Address rewrite, он не подходит.
>Испробовал System filter, он не подходит.Решение таких задач достаточно тривиальны через механизмы system filter и роутеров. Есть примеры как в faq так и в документации.
Покажите что пробовали и почему не подходит.
>Покажите что пробовали и почему не подходит.Итак, есть 3 основных правила для почты:
1. Вся почта на строго определенный домен, назовем его example.com должна ходить без вопросов.
2. Почта с одного набора определённых адресов должна перенаправляться на другой набор.
3. Всё остальная почта должна уходить на тестовый ящик.Текущие настройки такие:
1. Address rewriting (выполняет пункты 1 и 3):*@example.com * tTq
* developer@company.com tT2. System filter модифицирует заголовки для выполнения пункта 2, однако, к сожалению, это не влияет на список кому будет отправлено письмо уже никак.
if $sender_address contains "root@developer1" and not error_message then
headers add "Cc: developer1@example.com"
endif
>[оверквотинг удален]
>* 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сорри, ничего не понял что на самом деле нужно сложив первый пост, постановку задачи и вариант решения.
Добре, давайте еще раз. На 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Вопрос: как сделать так, чтобы второе условие выполнялось?
>[оверквотинг удален]
>как альтернатива послать копию на этот адрес.
>
>Мой вариант решения - В 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
>if $header_from: contains "root@developer1" then
> deliver <developer1@example.com>
>endifСпасибо, теперь всё работает.
Задача элементарная. Разложите ее на "если"-"тогда", и все у вас получится.
>Задача элементарная. Разложите ее на "если"-"тогда", и все у вас получится.Я разложил её уже много раз. Вопрос только в том, какую технологию использовать? Address rewrite? System Filter? ACL?
if УСЛОВИЕ
then
unseen deliver mail
endifНе подскажите, как надо оформлять "mail", чтобы там можно было писать несколько адресов.
Что-то навроде: unseen deliver mail1@domain.com, mail2@domain.com
Только чтобы работало.Или может не через системный фильтр сделать? А, нпример, через роуты?