exim: не работает rewrite

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
fatrogue
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-08-25 14:44:10

exim: не работает rewrite

Непрочитанное сообщение fatrogue » 2009-08-25 14:59:59

Ситуация следующая:
есть web-сервер, который использует почтовый сервер exim как релей для рассылки уведомлений и проч. проблема в том, что он умеет подставлять в качестве отправителя тот же почтовый адрес, что и в получателе. задача проста - во всех письмах от этого сервера заменять отправителя на заранее определенного (например, www@mydomen.ru)
в конфиге exim-а в секции rewrite :

Код: Выделить всё

 \N^(.*)$\N "${if eq{$sender_host_address}{192.168.0.99}{www@mydomen.ru}fail}" SFfrs 
не работает. второй день уже туплю, что не так?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: exim: не работает rewrite

Непрочитанное сообщение Cancer » 2009-08-26 10:38:14

Код: Выделить всё

######################################################################
#                      REWRITE CONFIGURATION                         #
######################################################################

begin rewrite


# Подмена заголовка @zern.domain.ru на @domain.ru
*@zern.domain.ru     $local_part@domain.ru        Eh

# Меняем пох_кто@test.domain.local на test@domain.ru
*@test.domain.local             test@domain.ru    Eh




#########################################
# Флаги                                 #
#########################################
# E ----> все поля конверта             #
# F ----> поле "From" в конверте        #
# T ----> поле "To" в конверте          #
# b ----> заголовок "Bcc:"              #
# c ----> заголовок "Cc:"               #
# f ----> заголовок "From:"             #
# h ----> все заголовки                 #
# r ----> заголовок "Reply-To:"         #
# s ----> заголовок "Sender:"           #
# t ----> заголовок "To:"               #
#########################################

fatrogue
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-08-25 14:44:10

Re: exim: не работает rewrite

Непрочитанное сообщение fatrogue » 2009-08-26 10:52:49

Cancer
Это я все видел и доку читал, код который я написал как раз и находится в секции rewrite. мне не просто нужно подменить какого-то конкретного отправителя, а любого, который пришел с определенного хоста...
поэтому пытаюсь прикрутить условие, но оно не срабатывает...как проверить, заполнена ли переменная $sender_host_address на момент rewrite или нет? и если заполнена, то чем?
если посмотреть сюда http://www.lissyara.su/?id=1231 , то я пытался взять за основу это:

Код: Выделить всё

Например, для применения правил перезаписи лишь для сообщений, который созданы вне локального хоста:

*@*.hitch.fict.example  "${if !eq {$sender_host_address}{}\
                         {$1@hitch.fict.example}fail}"

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: exim: не работает rewrite

Непрочитанное сообщение Cancer » 2009-08-26 11:08:32

Код: Выделить всё

"${if eq{$sender_address_domain}{192.168.0.99}{*@domain.ru}fail}"  www@domain.ru тут_ключи
192.168.0.99 надеюсь это у тебя сендер_адрес_нэйм

fatrogue
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-08-25 14:44:10

Re: exim: не работает rewrite

Непрочитанное сообщение fatrogue » 2009-08-26 11:28:32

Cancer писал(а):

Код: Выделить всё

"${if eq{$sender_address_domain}{192.168.0.99}{*@domain.ru}fail}"  www@domain.ru тут_ключи
192.168.0.99 надеюсь это у тебя сендер_адрес_нэйм
192.168.0.99 - это ip сервера. хотелось бы его не по имени или домену, а именно по ip ловить...

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: exim: не работает rewrite

Непрочитанное сообщение Cancer » 2009-08-26 11:32:54

Блин не помню но,

Код: Выделить всё

H=mx-ХХ.masterhost.ru [83.222.25.хх]
по идее должно отработать и по IP

fatrogue
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-08-25 14:44:10

Re: exim: не работает rewrite

Непрочитанное сообщение fatrogue » 2009-08-26 11:41:30

Cancer писал(а):Блин не помню но,

Код: Выделить всё

H=mx-ХХ.masterhost.ru [83.222.25.хх]
по идее должно отработать и по IP
не работает. и не должно, потому что $sender_address_domain - Доменная часть “$sender_address”. то есть это domain.ru, если в отправителе указан user@domain.ru. что самое странное, если запустить exim -d -bhc 192.168.0.99, то по логам - все перезаписывается как надо с помощью моей конструкции.
а в реальной эксплуатации - нет.

fatrogue
проходил мимо
Сообщения: 9
Зарегистрирован: 2009-08-25 14:44:10

Re: exim: не работает rewrite

Непрочитанное сообщение fatrogue » 2009-08-26 13:29:14

перезапись заработала как надо.
что было: так как хост был в разрешенных релеях, то он освобождался от всех проверок и наверно поэтому переменная $sender_host_address оставалась пустой.
что сделал: добавил перед accept для релеев

Код: Выделить всё

warn condition = ${if eq{$sender_host_address}{192.168.0.99}{yes}{no}}
hosts = +relay_from_hosts
logwrite = I did it!

Аватара пользователя
Agronom
ст. сержант
Сообщения: 305
Зарегистрирован: 2006-12-11 10:30:13

exim: не работает rewrite

Непрочитанное сообщение Agronom » 2019-02-18 9:19:57

fatrogue писал(а):
2009-08-26 13:29:14
что было: так как хост был в разрешенных релеях, то он освобождался от всех проверок и наверно поэтому переменная
у меня такая же необходимость и такая же ситуация, только нужно чтобы домен менялся с domain.ru на newdomain.ru, если письмо пришло с 192.168.22.15. Я так понимаю, сама строка реврайта будет выглядеть так:

Код: Выделить всё

"${if eq{$sender_address_domain}{192.168.22.15}{*@domain.ru}fail}"  $1@newdomain.ru Ttbc
и строки из поста выше:

Код: Выделить всё

warn condition = ${if eq{$sender_host_address}{192.168.0.99}{yes}{no}}
hosts = +relay_from_hosts
logwrite = I did it!
вставил до строки:

Код: Выделить всё

accept hosts = +relay_from_hosts
но домен все равно не изменяется, в логах видно, что письмо пришло с айпишника 192.168.22.15, но дальше уходит в виде user@domain.ru, а не user@newdomain.ru. ЧЯНТД?

Аватара пользователя
Agronom
ст. сержант
Сообщения: 305
Зарегистрирован: 2006-12-11 10:30:13

exim: не работает rewrite

Непрочитанное сообщение Agronom » 2019-02-18 11:59:50

вопрос закрыт, удалил из relay_from_hosts и чуть изменил строку реврайта

Код: Выделить всё

"${if eq{$sender_address_domain}{192.168.22.15}{*@domain.ru}fail}"  $1@newdomain.ru Ttbc
на

Код: Выделить всё

"${if eq{$sender_host_address}{192.168.22.15}{*@domain.ru}fail}"  $1@newdomain.ru Ttbc
и все заработало