Путем верчения конфига (в том числе был вообще вырублен вышеупомянутый Dr.Web) было выявлено вот какая странная весчь.
Но для начала небольшой ввод в курс дела. Имеется в секции роутов 2 (два) роута для редиректа.
Второй зачем спросите вы? отвечаю: хочется чтобы вторым редиректом только пользовался человек с данным IP
Код: Выделить всё
system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT goto FROM alias WHERE \
address='${quote_mysql:$local_part@$domain}'}}
alluser:
driver = redirect
condition = ${if match_ip{$sender_host_address}{192.168.66.666}}
data = ${lookup mysql{SELECT goto FROM alias_alluser WHERE \
address='${quote_mysql:$local_part@$domain}'}}
Вот важный кусок лога, после того, как я отправляю письмо на ящик, редирект которого будет браться из второго роута-редиректа.
Отправляю я письмецо залетное на ящик
xxxx@mydomain.ru, который должен перенаправить письмо на
yyyy@mydomain.ru
Код: Выделить всё
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Verifying xxxx@mydomain.ru
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering xxxx@mydomain.ru
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing xxxx@mydomain.ru
--------> dnslookup router <--------
local_part=xxxx domain=mydomain.ru
checking domains
search_open: mysql "NULL"
cached open
search_find: file="NULL"
key="SELECT domain FROM domain WHERE domain = 'mydomain.ru' " partial=-1 affix=NULL starflags=0
LRU list:
internal_search_find: file="NULL"
type=mysql key="SELECT domain FROM domain WHERE domain = 'mydomain.ru' "
cached data used for lookup of SELECT domain FROM domain WHERE domain = 'mydomain.ru'
lookup yielded: mydomain.ru
mydomain.ru in "mydomain.ru"? yes (matched "mydomain.ru")
mydomain.ru in "! +local_domains"? no (matched "! +local_domains")
dnslookup router skipped: domains mismatch
--------> system_aliases router <--------
local_part=xxxx domain=mydomain.ru
calling system_aliases router
rda_interpret (string): ${lookup mysql{SELECT goto FROM alias WHERE address='${quote_mysql:$local_part@$domain}'}}
search_open: mysql "NULL"
cached open
search_find: file="NULL"
key="SELECT goto FROM alias WHERE address='xxxx@mydomain.ru'" partial=-1 affix=NULL starflags=0
LRU list:
internal_search_find: file="NULL"
type=mysql key="SELECT goto FROM alias WHERE address='xxxx@mydomain.ru'"
database lookup required for SELECT goto FROM alias WHERE address='xxxx@mydomain.ru'
MySQL query: SELECT goto FROM alias WHERE address='xxxx@mydomain.ru'
MYSQL using cached connection for localhost/mail/root
MYSQL: no data found
lookup failed
expanded:
file is not a filter file
parse_forward_list:
system_aliases router declined for xxxx@mydomain.ru
--------> alluser router <--------
local_part=xxxx domain=mydomain.ru
checking "condition"
192.168.24.209 in "192.168.24.209"? yes (matched "192.168.24.209")
calling alluser router
rda_interpret (string): ${lookup mysql{SELECT goto FROM alias_alluser WHERE address='${quote_mysql:$local_part@$domain}'}}
search_open: mysql "NULL"
cached open
search_find: file="NULL"
key="SELECT goto FROM alias_alluser WHERE address='xxxx@mydomain.ru'" partial=-1 affix=NULL starflags=0
LRU list:
internal_search_find: file="NULL"
type=mysql key="SELECT goto FROM alias_alluser WHERE address='xxxx@mydomain.ru'"
database lookup required for SELECT goto FROM alias_alluser WHERE address='xxxx@mydomain.ru'
MySQL query: SELECT goto FROM alias_alluser WHERE address='xxxx@mydomain.ru'
MYSQL using cached connection for localhost/mail/root
lookup yielded: yyyy@mydomain.ru
expanded:yyyy@mydomain.ru
file is not a filter file
parse_forward_list: yyyy@mydomain.ru
extract item:yyyy@mydomain.ru
alluser router generated yyyy@mydomain.ru
errors_to=NULL transport=NULL
uid=unset gid=unset home=NULL
routed by alluser router
envelope to: xxxx@mydomain.ru
transport: <none>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering yyyy@mydomain.ru
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing yyyy@mydomain.ru
--------> dnslookup router <--------
local_part=yyyy domain=mydomain.ru
checking domains
search_open: mysql "NULL"
cached open
search_find: file="NULL"
key="SELECT domain FROM domain WHERE domain = 'mydomain.ru' " partial=-1 affix=NULL starflags=0
LRU list:
internal_search_find: file="NULL"
type=mysql key="SELECT domain FROM domain WHERE domain = 'mydomain.ru' "
cached data used for lookup of SELECT domain FROM domain WHERE domain = 'mydomain.ru'
lookup yielded: mydomain.ru
mydomain.ru in "mydomain.ru"? yes (matched "mydomain.ru")
mydomain.ru in "! +local_domains"? no (matched "! +local_domains")
dnslookup router skipped: domains mismatch
--------> system_aliases router <--------
local_part=yyyy domain=mydomain.ru
calling system_aliases router
rda_interpret (string): ${lookup mysql{SELECT goto FROM alias WHERE address='${quote_mysql:$local_part@$domain}'}}
search_open: mysql "NULL"
cached open
search_find: file="NULL"
key="SELECT goto FROM alias WHERE address='yyyy@mydomain.ru'" partial=-1 affix=NULL starflags=0
LRU list:
internal_search_find: file="NULL"
type=mysql key="SELECT goto FROM alias WHERE address='yyyy@mydomain.ru'"
database lookup required for SELECT goto FROM alias WHERE address='yyyy@mydomain.ru'
MySQL query: SELECT goto FROM alias WHERE address='yyyy@mydomain.ru'
MYSQL using cached connection for localhost/mail/root
MYSQL: no data found
lookup failed
expanded:
file is not a filter file
parse_forward_list:
system_aliases router declined for yyyy@mydomain.ru
--------> alluser router <--------
local_part=yyyy domain=mydomain.ru
checking "condition"
192.168.24.209 in "192.168.24.209"? yes (matched "192.168.24.209")
calling alluser router
rda_interpret (string): ${lookup mysql{SELECT goto FROM alias_alluser WHERE address='${quote_mysql:$local_part@$domain}'}}
search_open: mysql "NULL"
cached open
search_find: file="NULL"
key="SELECT goto FROM alias_alluser WHERE address='yyyy@mydomain.ru'" partial=-1 affix=NULL starflags=0
LRU list:
internal_search_find: file="NULL"
type=mysql key="SELECT goto FROM alias_alluser WHERE address='yyyy@mydomain.ru'"
database lookup required for SELECT goto FROM alias_alluser WHERE address='yyyy@mydomain.ru'
MySQL query: SELECT goto FROM alias_alluser WHERE address='yyyy@mydomain.ru'
MYSQL using cached connection for localhost/mail/root
MYSQL: no data found
lookup failed
expanded:
file is not a filter file
parse_forward_list:
alluser router declined for yyyy@mydomain.ru
..................
Неизвестно почему после первого прохода по роутам, из которого видно что все ОК, IP проверил, куда переправлять письмо ( на
yyyy@mydomain.ru) нашел, он ВНЕЗАПНО идет на второй круг по роутам. но уже для адреса на который я должен получить письмо после перенаправлени (
yyyy@mydomain.ru ) и конечно же в этом втором проходе в роуте alluser router он не находит его в базе ибо его там в столбце address (а есть только
xxxx@mydomain.ru) нет.
PS: что странно, то для первого редирект-роута (system_aliases router) никаких "вторых проходов" нету и в помине и все ОК.
Честные, помогите разобраться где тут косяк. ибо своими силами я пока ен смог отыскать чо да как.
PPS: Повторюсь, что точно такая же схема, но для Exim 4.69 работает на УРА. Но вроде как они ничего такого не меняли в этой версии...