This is an old revision of the document!
Exim4 - Managing the queue
The main exim binary (/usr/sbin/exim) is used with various flags to make things happen to messages in the queue. Most of these require one or more message-IDs to be specified in the command line, which is where exiqgrep -i comes in handy.
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> [ <message-id> ... ]
Freeze a message:
exim -Mf <message-id> [ <message-id> ... ]
Thaw a message:
exim -Mt <message-id> [ <message-id> ... ]
Deliver a message, whether it's frozen or not, whether the retry time has been reached or not:
exim -M <message-id> [ <message-id> ... ]
Deliver a message, but only if the retry time has been reached:
exim -Mc <message-id> [ <message-id> ... ]
Force a message to fail and bounce as “cancelled by administrator”:
exim -Mg <message-id> [ <message-id> ... ]
Remove all frozen messages:
exiqgrep -z -i | xargs exim -Mrm
Remove all messages older than five days (86400 * 5 = 432000 seconds):
exiqgrep -o 432000 -i | xargs exim -Mrm
Freeze all queued mail from a given sender:
exiqgrep -i -f luser@example.tld | xargs exim -Mf
View a message's headers:
exim -Mvh <message-id>
View a message's body:
root@localhost# exim -Mvb <message-id>
View a message's logs:
root@localhost# exim -Mvl <message-id>
Add a recipient to a message:
root@localhost# exim -Mar <message-id> <address> [ <address> ... ]
Edit the sender of a message:
root@localhost# exim -Mes <message-id> <address>