Условная перезапись адресов

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-06 8:59:54

Необходимо наладить перезаписывание заголовка From при условии, если письмо направлено на определенный домен, т.е. кто бы не отправлял письмо оно должно быть доставлено от имени office@work.domain

В доке написано слудующее:

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

Перезапись может быть сделана условной, в ряде тестов, путём использования “${if” в элементе раскрытия. Например, для применения правил перезаписи лишь для сообщений, который созданы вне локального хоста:
*@*.hitch.fict.example  "${if !eq {$sender_host_address}{}{$1@hitch.fict.example}fail}"
не совсем понятно что каждый пункт означает... а именно хотелось бы понять как сделать проверку домена получателя и куда вписывать то на что будет производиться замена, и что означает вот это ==> {} ?
...да прибудет со мной етитская сила!...

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Alex Keda » 2007-09-06 9:05:43

читай целиком условие

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

!eq {$sender_host_address}{}
вопрос непонятен.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-06 10:08:45

что значит "!eq", неравно чтоли?
и как сделать корректно эту проверку: {$recipient = user@partner.domain}
и для чего пустые скобки {} ?
...да прибудет со мной етитская сила!...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Alex Keda » 2007-09-06 10:38:07

если $sender_host_address неэквивалентен пустому
=========
читайте про синтксис exim и ACL в частности.
я докуентацию переводил не для того, чтобы одно и то же объяснять по сто раз.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-10 18:41:45

Замечание справедливое... но я так и не смог найти переменную раскрытия которая отвечает за домен получателя.
Пробовал $resipient $recipients $recipients_damain...
Вот пример того что я хочу сделать, но Exim говорит что не знает переменную $recipients

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

*mydomain.ru "${if eq {$recipients}{*@yandex.ru}{office@mydomain.ru}}" f
:roll: подскажите плз, какая должна быть переменная...
...да прибудет со мной етитская сила!...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Alex Keda » 2007-09-10 18:44:15

такой нету.
у письма может быть несколько получателей - это нормальная ситуация.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-10 19:25:19

очень, очень, очень жаль.... а где можно посмотреть список всех переменных, может че подходящее найдется
...да прибудет со мной етитская сила!...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Alex Keda » 2007-09-10 19:55:47

может всё же стоит почитать документацию?!
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-10 23:22:02

В документации переменная $recipients есть, и она как раз содержит список получателей сообщения. Только её использование ограниченно, а можно ли переписать адрес во время проверки почты ACL-ом, и может ли Exim проверять ACL-ми исходящую почту?
...да прибудет со мной етитская сила!...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Alex Keda » 2007-09-10 23:40:52

но я так и не смог найти переменную раскрытия которая отвечает за домен получателя.
я в чём-то неполно ответил на вопрос?
=======
всё можно. не имеет значения входящая или исходящая почта, просто нужно всё настроить на нужную тебе схему.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-11 16:33:04

Вот до чего дошло мое пыхтение:

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

remote_smtp:
    headers_rewrite = *@mydomain.ru ${if eq{${domain:$recipients}}{yandex.ru}{office@mydomain.ru}} f
    driver = smtp
но при запуске Exim дает ошибку:

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

2007-09-11 18:29:11 Exim configuration error in line 450 of /usr/local/etc/exim/configure:
  unknown rewrite flag character 'e' (could be missing quotes round replacement item)
...что еще за круглый элемент замены?
...да прибудет со мной етитская сила!...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Alex Keda » 2007-09-11 18:09:04

круглые скобки.
и условие никогда не србоатает.
ты хоешь полного соответствия полного адреса домену яндекс...
неполучится.
используй match
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-11 20:00:54

Понятно... а разве конструкция

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

${domain:$recipients}
не возвратит домен получателя?
...да прибудет со мной етитская сила!...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Alex Keda » 2007-09-11 20:15:16

их может быть много.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-11 20:23:23

но ведь должно сработать если получатель один будет...
...да прибудет со мной етитская сила!...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-11 20:31:44

чет не понял по поводу круглых скобок :(
...да прибудет со мной етитская сила!...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-11 21:46:19

поставил кавычки и ошибка исчезла, но перезапись не получилась

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

remote_smtp:
   headers_rewrite = *@consplus.udm.ru \
   "${if eq {${domain:$recipients}}{yandex.ru}{office@consplus.udm.ru}}" f
   driver = smtp
...да прибудет со мной етитская сила!...

Аватара пользователя
Магистр
ефрейтор
Сообщения: 58
Зарегистрирован: 2007-08-03 14:26:55
Откуда: Ижевск
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Магистр » 2007-09-11 22:54:15

блин ну опять не нравится

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

2007-09-12 00:09:14 1IVB6k-000GzC-SN Expansion of ${if eq {${domain failed while rewriting: "${domain" is not a known operator (or a } is missing in a variable reference)
...да прибудет со мной етитская сила!...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Условная перезапись адресов

Непрочитанное сообщение Alex Keda » 2007-09-11 23:41:39

будет, если он будет один...
===
про ошибки - почитайте про синтаксис условий.
Убей их всех! Бог потом рассортирует...