[Exim] expansion variable for use in ACLs which contains 'da…

Top Page
Delete this message
Reply to this message
Author: Ollie Cook
Date:  
To: exim-users
Subject: [Exim] expansion variable for use in ACLs which contains 'data' after verification failure in redirect router
Hi,

I would like to give remote hosts as much information as possible when I don't
accept a certain recipient, under Exim 4.12.

For example, at the moment, I have an ACL which results in this behaviour:

MAIL FROM:<ollie@???>
250 OK
RCPT TO:<ollie@???>
550 Unrouteable address

The relevant part of the ACL is:

  deny   domains     = +local_domains
         !verify      = recipient


However, when verifying this address from the command line, the reason for the
address being unroutable is more explicit:

  root@chaos:[/home/ollie] (74) # exim -C ~ollie/v4.conf -bt ollie@???
  ollie@??? is undeliverable:
    This customer does not have a @clara.net address. Please try <ollie@???> instead.


That is achieved by the following router:

  net_email:
    driver    = redirect
    condition = VOODOO_MAGIC
    data      = :fail: This customer does not have a @clara.net address. Please try <MORE_VOODOO_MAGIC@???> instead.
    domains   = clara.net:*.clara.net
    retry_use_local_part
    allow_defer
    allow_fail


I've replaced some complicated lookups with VOODOO etc. for clarity.

Is there a variable which contains what 'data' is set to after this router is
run (i.e. the new 'address'), for use in an ACL, to provide more information to
the remote host about why the recipient was not accepted? I thought
$address_data looked promising, but this was an empty string. :(

Any help would be greatly appreciated. Thanks.

Ollie

--
Oliver Cook    Systems Administrator, Claranet UK
ollie@???                  020 7903 3065