[Exim] Problem with aliases and directors

Top Page
Delete this message
Reply to this message
Author: William Thompson
Date:  
To: exim-users
Subject: [Exim] Problem with aliases and directors
I'm not sure if this is a bug or not. here's my director:
vcheck:
        driver = smartuser
        local_parts = !root : !wt
        condition = "${if and { \
                               {eq {$received_protocol}{scanned-ok}} \
                               {or { \
                                    {eq {$sender_host_address}{127.0.0.1}} \
                                    {eq {$sender_host_address}{}} \
                                   } \
                               } \
                              } \
                       {false} {true} \
                      }"
        transport = vscan


in /etc/exim/aliases, I have:

root: wt

Here's the problem. I don't want this to run if I send an email to root.
The program that is in the vscan transport is purposely broken in order to
test it's error reporting (which emails root). The above director works,
however, if I remove !root or !wt from local_parts, it will always run.

with !root removed:
# exim -bt root
root@???
deliver to root in domain cd2.electro-mechanical.com
director = vcheck, transport = vscan
#

with !wt removed:
# exim -bt root
wt@???
    <-- root@???
  deliver to wt in domain cd2.electro-mechanical.com
  director = vcheck, transport = vscan
#


with neither removed:
# exim -bt root
wt@???
    <-- root@???
  deliver to wt in domain cd2.electro-mechanical.com
  director = localuser, transport = local_delivery
#


Is this a bug or a misconfiguration in my exim.conf?

I know I could change the program to do something else, however, my first
attempt wasn't that and wanted to figure it out.

If you want to know, the program calls exim as:
/usr/lib/sendmail -f mail_scan -oi -oem -bm root