Exim's-bh command line argument allows you to run a fake SMTP session with debugging output, in order to
check what Exim is doing when it is applying policy controls to incoming SMTP mail. However, not
everybody is sufficiently familiar with the SMTP protocol to be able to make full use of -bh, and
sometimes you just want to answer the question “Does this address have access?” without bothering with
any further details.
The exim_checkaccess utility is a ‘packaged’ version of -bh. It takes two arguments, an IP address and
an email address:
exim_checkaccess 10.9.8.7 A.User@a.domain.example
The utility runs a call to Exim with the -bh option, to test whether the given email address would be
accepted in a RCPT command in a TCP/IP connection from the host with the given IP address. The output of
the utility is either the word ‘accepted’, or the SMTP error response, for example:
Rejected:
550 Relay not permitted
When running this test, the utility uses “<>” as the envelope sender address for the MAIL command, but
you can change this by providing additional options. These are passed directly to the Exim command. For
example, to specify that the test is to be run with the sender address “himself@there.example” you can
use:
exim_checkaccess 10.9.8.7 A.User@a.domain.example \
-f himself@there.example
Note that these additional Exim command line items must be given after the two mandatory arguments.