Понадобилось тут для некоторых серверов при отправке почты внешним адресатам не просто смотреть, что домен не наш, а что mx для того, кому отправляем указывает не на IP нашего сервера.

Почему так понадобилось - некоторые особо умные любят добавлять домены вида google.ru или им подобные.

На 1 из серверов с exim 4.72 работала такая вот конструкция

dnslookup:
  driver = dnslookup
condition = ${if !match_ip {193.106.xx.yy} { ${lookup dnsdb {>:a= ${lookup dnsdb {>: mxh=$domain} } } } } }
  transport = remote_smtp
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
  no_more

Но после exim  4.77 сиё перестало работать с руганью в логах

condition = ${if !match_ip {193.106.xx.yy} { ${lookup dnsdb {>:a= ${lookup dnsdb {>: mxh=$domain} } } } } }

2014-04-26 22:53:25 failed to expand " ${lookup dnsdb {>:a= ${lookup dnsdb {>: mxh=$domain" while checking a list: missing } at end of string 2014-04-26 22:53:25 failed to expand condition "${if !match_ip {193.106.xx.yy} { ${lookup dnsdb {>:a= ${lookup dnsdb {>: mxh=$domain} } } } } }" for dnslookup router: unable to complete match against " ${lookup dnsdb {>:a= ${lookup dnsdb {>: mxh=$domain": NULL


Судя по чейнджлогу  это из-за

The match_<type>{string1}{string2} expansion conditions no longer subject
   string2 to string expansion, unless Exim was built with the new
"EXPAND_LISTMATCH_RHS" option. Too many people have inadvertently created insecure configurations that way. If you need the functionality and turn on that build option, please let the developers know, and know why, so we can
   try to provide a safer mechanism for you.


Как бы правило переписать более по другому,что бы не пересобирать с EXPAND_LISTMATCH_RHS ?
_______________________________________________
Exim-users mailing list
[email protected]
http://mailground.net/mailman/listinfo/exim-users

Ответить