При установке php директадмин патчит функцию mail таким образом что все письма отправляются от user@domain.ru, где user -- имя пользователя от которого запущен скрипт, domain.ru -- общий домен домен.
Т.е. к примеру, главным является домен domain.ru, пользователь hosting запускает скрипт http://www.xxxx.ru/mail.php, письмо уходит от hosting@domain.ru.
Соответственно проблемка.
В exim стоит проверка на существование пользователя на уровне ACL, я про неё где-то на форуме уже писал, работает она по принципу проверки существования пользователя в файле /etc/virtual/xxxx.ru/passwd
Оно отлично работает пока не встречаются конструкции вида, указанного выше.
Для того чтобы исправить ситуацию, я перед правилом на проверку пользователя в passwd пишу:
Код: Выделить всё
accept message = our user
domains = +local_domains
host = !+relay_hosts
condition = ${if \
and {\
{ eq {$domain} {domain.ru} } \
{ !eq {} {${lookup{$local_part}lsearch{/etc/passwd}}} } \
} \
} {yes}{no}
Хочется сделать чтобы поиск шёл по файлу /etc/virtual/domainowners.
Файл в формате:
domain1.ru: user_domain1_ru
domain2.ru: user_domain2_ru
Как я только не изгалялся с extract и иже с ним ничего не получалось.
Lookup lsearch использовать тоже не получается, ибо оно отчего-то хочет чтобы ключём была именно первая запись, а у меня ключ -- вторая.
За ранее спасибо!