[exim] verify recipient not working

Top Page
Delete this message
Reply to this message
Author: Paul Welsh
Date:  
To: exim-users
Subject: [exim] verify recipient not working
Hi all

I'm running Exim 4.6 and MailScanner 4.64.3 which requires 2 instances
of Exim to be running - one for incoming mail and the other for outgoing
mail.

The problem is, I can't get Exim's verify recipient functionality
working, even though my exim.conf specifies it.

The reason I would like this to work is that my server relays for one
domain in particular that is getting thousands of dictionary based spam
messages (tens of thousands per day). My server relays to their smtp
server after checking for spam and viruses using MailScanner and
SpamAssassin. The public DNS for the domain points to my server as the
MX and my server's DNS has an MX of their SMTP server. Their server
sends their outbound mail via mine so it gets scanned.

The domain is in my /etc/virtual/relay_domains file and the IP of their
mail server is in my /etc/virtual/relay_hosts file.

Has anyone any ideas? I've spent hours banging my head against a brick
wall on this one.

What I expect to happen is for exim to contact the remote smtp server to
validate the address as soon as it gets the "rcpt to" command and then
issue an "unknown user" response if the remote smtp server rejects it.
What is happening instead is that the messages are being accepted,
scanned by MailScanner and passed to the remote smtp server which
rejects them. This is a real waste of resources.

One theory I have is that because there's an inbound and outbound
instance of exim to allow it to work with MailScanner then the verify
recipient functionality is effectively disabled, but I'm clutching at
straws here.

All advice very much appreciated.

The /etc/exim.conf which is the instance of exim used for inbound mail
has these settings:

# accept if address is in a local domain as long as recipient can be
verified
accept domains = +local_domains
endpass
message = unknown user
verify = recipient

# accept if address is in a domain for which we relay as long as recipient
# can be verified
accept domains = +relay_domains
endpass
message = unknown user
verify = recipient

accept hosts = +relay_hosts
endpass
message = unknown user
verify = recipient
accept hosts = +auth_relay_hosts