[Exim] sender/receiver verify problem

Top Page
Delete this message
Reply to this message
Author: Stefan Kaltenbrunner
Date:  
To: exim-users
Subject: [Exim] sender/receiver verify problem
Hi all!

we are currently evaluating exim4 as a replacement for our aging
sendmail installation. During our initial tests we found a small problem
which we where unable to solve.
While most of our setup is LDAP-based(works fine!) we have some (mostly
old) account which don't exist in de directory. The maschine in question
is designed to work as a mail-gateway without local delivery and is
doing receiver AND sender verify.
For coping with with accounts we have but don't exist in the directory
we are using 2 simple text-files which contain the mail-addresses in
question.

The testsystem is running Solaris 9 and exim 4.10.8(the prerelease)
using Sun LDAP as the backend.

for verification we use the following 2 simple routers(among others -
but those work as expected):

sender_accept:
driver = accept
senders = /etc/mail/no_sender_vrfy
verify_recipient = false
verify_only

receiver_accept:
driver=accept
senders = /etc/mail/no_receiver_vrfy
verify_only
verify_sender = false

this works fine as long as the sender and the receiver is the same user
or if we are only doing sender OR receiver verification.
However wenn using sender AND receiver verify at the same time sender
verification works as expected(maybe because it happens first) - but
receiver verification fails in a very weird way.

Attempting a fake smtp-session using "-bh <ip> -d" we get:
(test_user1@??? is the sender and test_user2@??? the
recipient)



when verifying the sender:
....
--------> sender_accept router <--------
local_part=test_user1 domain=conova.com
checking senders
address match: subject=test_user1@??? pattern=test_user1@???
conova.com in "conova.com"? yes (matched "conova.com")
test_user1@??? in "/etc/mail/no_sender_vrfy"? yes (matched
"test_user1@???" in /etc/mail/no_sender_vrfy)
calling sender_accept router
sender_accept router called for test_user1@???
domain = conova.com
queued for <unset> transport: local_part = test_user1
domain = conova.com
errors_to=NULL
domain_data=NULL localpart_data=NULL
routed by sender_accept router
envelope to: test_user1@???
transport: <none>
----------- end verify ------------
sender test_user1@??? verified ok


-> this works as expected


so ... now we try to verify the recipient:

....

--------> sender_accept router <--------
local_part=test_user2 domain=conova.com
sender_accept router skipped: verify 2 1 0
--------> receiver_accept router <--------
local_part=test_user2 domain=conova.com
^^^^^^^
this seems right b'cause test_user2 is the recipient

...
checking senders
address match: subject=test_user1@??? pattern=test_user2@???
^^^^^^^
-> but why is exim using the SENDER-address for the lookup here and not
the recipient-address ?

...
test_user1@??? in "/etc/mail/no_receiver_vrfy"? no (end of list)
receiver_accept router skipped: senders mismatch





TIA

Stefan Kaltenbrunner

--
Stefan Kaltenbrunner
mastermind@???