This is an old revision of the document!


Quick & Dirty Exim Management

Below are some shell commands that can be used to manage Exim and it's email queue. The commands listed below must be run as root.

Managing Exim Itself

Start/Stop/Restart Exim

# /etc/init.d/exim start|stop|restart

Print what Exim is doing right now

# exiwhat

Test how exim will route a given email address

# exim -bt email@address.tld

Generate and display Exim stats from a logfile

# eximstats /path/to/exim_mainlog

Run a pretend SMTP transaction from the command line, as if it were coming from the given IP address. This will display Exim’s checks, ACLs, and filters as they are applied. Replace x.x.x.x with the IP you want to use as the source

# exim -bh x.x.x.x

Display all of Exim’s configuration settings

# exim -bP

Queue Information

Print a count of messages in the queue

# exim -bpc

Print a listing of the messages in the queue (time queued, size, message-id, sender, recipient)

# exim -bp

Print a summary of messages in the queue (count, volume, oldest, newest, domain, and totals)

# exim -bp | exiqsumm

Searching the Queue

Search the queue for messages from a specific sender

# exiqgrep -f [user]@domain

Search the queue for messages for a specific recipient/domain

# exiqgrep -r [user]@domain

Print just the message-id as a result of one of the above two searches

# exiqgrep -i [ -r | -f ] ...

Print a count of messages matching one of the above searches

# exiqgrep -c [ -r | -f ] ...

Print just the message-id of the entire queue

# exiqgrep -i

Queue Management

Start a queue run

# exim -q -v

Start a queue run for just local deliveries

# exim -ql -v

Remove a message from the queue

# exim -Mrm <message-id>

Remove all messages older than X seconds from the queue(for example 5 days would be 432000 seconds)

# exiqgrep -o 432000 -i | xargs exim -Mrm

Freeze all queued mail from a sender

# exiqgrep -i -f email@address.tld | xargs exim -Mf

View a queued message's header

# exim -Mvh <message-id>

View a queued message's body

# exim -Mvb <message-id>

View a queued message's log

# exim -Mvl <message-id>

Remove all messages from the queue (usually a bad idea)

# exiqgrep -i | xargs exim -Mrm