Страница 1 из 1
Условная перезапись адресов
Добавлено: 2007-09-06 8:59:54
Магистр
Необходимо наладить перезаписывание заголовка From при условии, если письмо направлено на определенный домен, т.е. кто бы не отправлял письмо оно должно быть доставлено от имени
office@work.domain
В доке написано слудующее:
Код: Выделить всё
Перезапись может быть сделана условной, в ряде тестов, путём использования “${if” в элементе раскрытия. Например, для применения правил перезаписи лишь для сообщений, который созданы вне локального хоста:
*@*.hitch.fict.example "${if !eq {$sender_host_address}{}{$1@hitch.fict.example}fail}"
не совсем понятно что каждый пункт означает... а именно хотелось бы понять как сделать проверку домена получателя и куда вписывать то на что будет производиться замена, и что означает вот это ==> {} ?
Re: Условная перезапись адресов
Добавлено: 2007-09-06 9:05:43
Alex Keda
читай целиком условие
вопрос непонятен.
Re: Условная перезапись адресов
Добавлено: 2007-09-06 10:08:45
Магистр
что значит "!eq", неравно чтоли?
и как сделать корректно эту проверку: {$recipient =
user@partner.domain}
и для чего пустые скобки {} ?
Re: Условная перезапись адресов
Добавлено: 2007-09-06 10:38:07
Alex Keda
если $sender_host_address неэквивалентен пустому
=========
читайте про синтксис exim и ACL в частности.
я докуентацию переводил не для того, чтобы одно и то же объяснять по сто раз.
Re: Условная перезапись адресов
Добавлено: 2007-09-10 18:41:45
Магистр
Замечание справедливое... но я так и не смог найти переменную раскрытия которая отвечает за домен получателя.
Пробовал $resipient $recipients $recipients_damain...
Вот пример того что я хочу сделать, но Exim говорит что не знает переменную $recipients
Код: Выделить всё
*mydomain.ru "${if eq {$recipients}{*@yandex.ru}{office@mydomain.ru}}" f

подскажите плз, какая должна быть переменная...
Re: Условная перезапись адресов
Добавлено: 2007-09-10 18:44:15
Alex Keda
такой нету.
у письма может быть несколько получателей - это нормальная ситуация.
Re: Условная перезапись адресов
Добавлено: 2007-09-10 19:25:19
Магистр
очень, очень, очень жаль.... а где можно посмотреть список всех переменных, может че подходящее найдется
Re: Условная перезапись адресов
Добавлено: 2007-09-10 19:55:47
Alex Keda
может всё же стоит почитать
документацию?!
Re: Условная перезапись адресов
Добавлено: 2007-09-10 23:22:02
Магистр
В документации переменная $recipients есть, и она как раз содержит список получателей сообщения. Только её использование ограниченно, а можно ли переписать адрес во время проверки почты ACL-ом, и может ли Exim проверять ACL-ми исходящую почту?
Re: Условная перезапись адресов
Добавлено: 2007-09-10 23:40:52
Alex Keda
но я так и не смог найти переменную раскрытия которая отвечает за домен получателя.
я в чём-то неполно ответил на вопрос?
=======
всё можно. не имеет значения входящая или исходящая почта, просто нужно всё настроить на нужную тебе схему.
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)
...что еще за круглый элемент замены?
Re: Условная перезапись адресов
Добавлено: 2007-09-11 18:09:04
Alex Keda
круглые скобки.
и условие никогда не србоатает.
ты хоешь полного соответствия полного адреса домену яндекс...
неполучится.
используй match
Re: Условная перезапись адресов
Добавлено: 2007-09-11 20:00:54
Магистр
Понятно... а разве конструкция
не возвратит домен получателя?
Re: Условная перезапись адресов
Добавлено: 2007-09-11 20:15:16
Alex Keda
их может быть много.
Re: Условная перезапись адресов
Добавлено: 2007-09-11 20:23:23
Магистр
но ведь должно сработать если получатель один будет...
Re: Условная перезапись адресов
Добавлено: 2007-09-11 20:31:44
Магистр
чет не понял по поводу круглых скобок

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
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)
Re: Условная перезапись адресов
Добавлено: 2007-09-11 23:41:39
Alex Keda
будет, если он будет один...
===
про ошибки - почитайте про синтаксис условий.