Re: [exim] checking a local user against a list

Top Page
Delete this message
Reply to this message
Author: Tony Finch
Date:  
To: Steev Hise
CC: exim-users
Subject: Re: [exim] checking a local user against a list
On Tue, 1 Feb 2005, Steev Hise wrote:
>
> could you maybe give an example?


In the default configuration file there's a localuser router which sets up
local delivery for real local users. You can add an address_data clause to
the router so it looks like this:

localuser:
  driver               = accept
  check_local_user
  address_data         = $local_part
  transport            = local_delivery
  cannot_route_message = Unknown user


When an address is verified it is run through the routers to work out
where it ends up. So if there is an entry in /etc/aliases like fred:jim
then email addressed to fred@example will end up going to jim. Any address
data that was worked out is preserved in the $address_data variable. So in
the RCPT ACL you can say the following, and if jim is in the
not-these-users list, email to jim@ or fred@ will be rejected.

  require
    verify    = recipient
    condition = ${lookup  {$address_data} \
                  lsearch {/etc/mail/not-these-users} \
                    {no} {yes} }


Note that this will only affect email coming in via SMTP individually
addressed to these users. If there's an entry in /etc/aliases like
sheila:fred,jim then verification of sheila@ will stop after checking
/etc/aliases because Exim only verifies addresses as long as they have a
single recipient. It will also not apply to locally-submitted email. So
this isn't a way of preventing email from going to jim@ - if you want to
do that you should arrange for the routers to fail for that address.

Tony.
--
<fanf@???> <dot@???> http://dotat.at/ ${sg{\N${sg{\
N\}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}\
\N}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}