Searching the queue with exiqgrep
In this article I am explaining the command usages for finding emails in Exim mail queue for particular sender or receiver.
Exim includes a utility that is quite nice for grepping through the queue, called exiqgrep. Learn it. Know it. Live it. If you’re not using this, and if you’re not familiar with the various flags it uses, you’re probably doing things the hard way, like piping `exim -bp` into awk, grep, cut, or `wc -l`. Don’t make life harder than it already is.
First, various flags that control what messages are matched. These can be combined to come up with a very particular search.
1) Use -f ( To search the queue for messages from a specific sender )
root@localhost# exiqgrep -f [luser]@domain
2) Use -r ( To search the queue for messages for a specific recipient/domain )
root@localhost# exiqgrep -r [luser]@domain
3) Use -o ( To print messages older than the specified number of seconds. For example, messages older than 1 day )
root@localhost# exiqgrep -o 86400 […]
4) Use -y ( To print messages that are younger than the specified number of seconds. For example, messages less than an hour old )
root@localhost# exiqgrep -y 3600 […]
5) Use -s ( To match the size of a message with a regex. For example, 700-799 bytes )
root@localhost# exiqgrep -s ‘^7..$’ […]
“^3$” –> 3bytes
“^3.$” –> 3-30bytes
“^3..$” –> 3-300bytes
“^3…$” –> 3-3000bytes
And so on..
6) Use -z ( To match only frozen messages )
7) Use -x ( To match only unfrozen messages )
There are also a few flags that control the display of the output.
8) Use -i ( To print just the message-id as a result of one of the above two searches )
root@localhost# exiqgrep -i [ -r | -f ] …
9) Use -c ( To print a count of messages matching one of the above searches )
root@localhost# exiqgrep -c …
10) Print just the message-id of the entire queue
root@localhost# exiqgrep -i
That’s it 🙂 🙂
Exim related post