Like thousands of others Email Server Administrator problem, our Exim mail server was targeted by spammers. I found that there was approximately 10000 emails residing in my mail queue. The exact number of emails in the queue were known by running :
exim -bpc

It was a tough job to clean up the queue. I tried the “exiqgrep” command to clean the emails those were older than 1 day from the queue.

exiqgrep -o 86400 -i | xargs exim -Mrm

Where 86400 are the seconds of 1 day.

However the above command was not of much help instead it keep on giving me errors. I had to think calmly to delete all the spams. I first decided ran the below command to Run additional queues in the background.

exim -qff &

I given this command multiple times. So that many queues were running at the same time. The next step was to clear all the Frozen messages from the mail queue.

exim -bpr | grep frozen | awk {’print $3′} | xargs exim -Mrm

Clearing the Frozen messages was a wise decision as it the mail queue was showing now 4000 messages in it. The other job was to find similar messages. I checked the queue again.

exim -bpr |more

I could guess that most of the emails are 2 or 3 days older. To clear all these spams the next command was helpful, which checked the mail queue then searched “2d” in it and taking the 3 argument which is Message Id… it deleted all those emails.

exim -bpr | grep 2d | awk {’print $3′} | xargs exim -Mrm

The queue was under my control after clearing the email older to two and three days. Still there were couple of hundreds emails in the queue. I noticed that there are many emails without a sender residing in the queue. It was very simple to clean these spams now.

exim -bpr | grep <> | awk {’print $3′} | xargs exim -Mrm

Yippie… I cleared the mail queue.

Some other useful Exim Queue managing commands are below :

exim -Mvh msgid View message header
exim -Mvb msgid View message body
exim -M msgid Force delivery of message
exim -v -M msgid View the transact of message

Force another queue run
exim -qf

Force another queue run and attempt to flush the frozen message
exim -qff

View the log for the message
exim -Mvl msgid

Remove message without sending any error message
exim -Mrm messageID

Giveup and fail message to bounce the message to the Sender
exim -Mg messageID

How much mail in the queue?
exim -bpc

How many Frozen mails in the queue
exim -bpr | grep frozen | wc -l

Deleteing Frozen Messages
exim -bpr | grep frozen | awk {’print $3′} | xargs exim -Mrm

To force exim update:
/scripts/eximup –force