Contributed by Viraj

here we can provide subheadings, such as wacky problems for things that might be hard to search for. just a proposal...

There's certainly a need for some description of debugging procedures - 'have you tried exim -bh' etc.

Useful Exim command-line options

You may like to add some of these to Exim command lines:

option description
-v more verbose
-d general debugging
-d+all maximum debugging
-d+all-memory max debugging less some tedious memory stuff
-bV Always run this after making changes to the config file and before restarting Exim. It will check the syntax for you
-bhc <ip_addr> fake smtp session as though you are at ip_addr. Use this to do a full test before committing changes

Examples of using -bhc

This is very useful indeed, the "c" adds callout processing. If you don't use them then drop the c from the command line. You will have to be careful about how you use this to test all the cases you are interested in.

Suppose that my Exim box acts as a relay for my nasty expensive commercial internal mail system called "mail" and its address is 192.168.0.100. You make changes to the config file (say added callouts) but don't restart Exim yet - you need to check it out first.

Here I only show what you might type, there will be quite a lot of output from Exim about what it is doing.

Check you can send from internal to external

# exim -bhc 192.168.0.100
helo mail
mail from:<user in my domain>
rcpt to:<random external address>
data
.

Check that mail is relayed from external to internal

# exim -bhc <random external valid IP address>
helo <real name of above address>
mail from:<external user>
rcpt to:<valid internal user>
data
.

Having checked out the configuration you can then fairly confidently restart/reload Exim to put the new config into action.

A connect ACL uses zen.spamhaus.org in a dnslist check

# exim -bhc 1.1.1.1

If the ACL looks something like this, then you will get dropped early on:

acl_check_connect:

  drop    message               = $sender_host_address is listed by $dnslist_domain
          log_message           = Remote host $sender_host_address is listed by $dnslist_domain ###002
          dnslists              = zen.spamhaus.org


See also the tools listed at ManagingExim.

SMTP testing tools

SMTP Benchmarking

EximWiki: TroubleShooting (last edited 2010-06-12 18:19:28 by pool-71-171-253-2)