Microsoft Exchange Server is a workhorse of today’s mail delivery systems. Depending on the size of the organization, it can send tens or even hundreds of messages every minute. Therefore, it is good to know how to quickly check an email queue on your Exchange 2010, 2013 or 2016. This is specifically useful to determine if the mailflow is fluent, how many messages are waiting to be processed or whether emails are not stuck in the queue. The quickest way is to use a simple PowerShell cmdlet instead of running the MMC Queue Viewer which almost always takes a while to load.
Types of email queues
There are basically three major types of queues available on MS Exchange Servers:
- Submission queue – contains messages waiting to be processed by transport agents
- Unreachable queue – contains email that could not be delivered to their destination
- Poison message queue – holds messages classified as dangerous for the server.
Usually, the submission queue is the most important as it is responsible for the actual mail delivery. If the submission queue stalls, no messages reach their intended recipients.
How to check the content of an email queue?
To check the contents of the submission queue run the following command in the Exchange Management Shell on your Exchange 2016/2013/2010:
Get-Queue -Identity Submission | Select Identity,Status,MessageCount
The result of the Get-Queue command is piped (redirected) to the Select command. This command shows only the Identity, Status, and MessageCount parts of the submission queue properties. In the example below, the submission queue shows 778 messages waiting to be processed.
If you want to see all available details describing the submission queue, simply run the same command but without the Select part:
Get-Queue -Identity Submission
The above method is simple, quick and effective as it can also be used with the remotely connected PowerShell session.