Filtering Messages
Microsoft Exchange Server 2007 will reach end of support on April 11, 2017. To stay supported, you will need to upgrade. For more information, see Resources to help you upgrade your Office 2007 servers and clients.
Applies to: Exchange Server 2007, Exchange Server 2007 SP1, Exchange Server 2007 SP2, Exchange Server 2007 SP3
You can manage messages in queues by using the Exchange Queue Viewer graphical user interface and commands in the Exchange Management Shell in Microsoft Exchange Server 2007. The list of messages can be very large, depending on current mail flow. The list of messages changes when messages enter and leave the server.
When you filter messages by message properties, you can adjust your search to specific criteria and locate messages that may be causing a mail flow problem or are suspected spam. You can then perform operations that modify the status of those messages.
Message Filtering Scenarios
Filtering generates different views of the messages in queues. By specifying filter criteria, you can quickly locate messages and take action on them. When an e-mail message is sent to multiple recipients, the message may be located in multiple queues. When you filter by message properties, you can locate messages across all queues. The following scenarios are examples of how you might use message filtering to manage mail flow:
The Submission queue on the computer that has the Edge Transport server role installed has a high volume of messages that are queued for delivery. Many of the messages have the same subject. Therefore, you suspect that spam is being sent to your organization. You can create a filter to view all the messages that meet the subject criteria. If you determine that the messages are spam, you can select them all and delete them from the delivery queue without sending a non-delivery report (NDR).
A user reports that mail flow is slow. You examine the queues and see that many messages that have random subjects appear to be coming from a single domain. You can create a filter to view all the queued messages from that domain. If you determine that the messages are spam, you can select them all and delete them from the queues without sending an NDR.
Message Properties to Use When Filtering Messages
You can use message properties to create a filter and locate messages that meet specified criteria. Table 1 lists the message properties by which you can filter and the values that are associated with those properties.
Table 1 Message properties
Queue Viewer message property | Exchange Management Shell message property | Property type | Value |
---|---|---|---|
Date Received |
DateReceived |
DateTime |
This value specifies the time stamp when the message was received by the server that holds the queue in which the message is located. |
Expiration Time |
ExpirationTime |
DateTime |
This value specifies the time stamp when the message will expire and be deleted from the queue if the message cannot be delivered. |
From Address |
FromAddress |
SMTP Address |
This value specifies the Simple Mail Transfer Protocol (SMTP) address of the sender of the message. |
Identity |
Identity |
Integer |
This value is an integer that represents a particular message. The message identity is assigned by the queuing database when the message is received for processing. You can include an optional server and queue identity to identify a unique instance of the message. This value can be expressed as follows:
|
Internet Message ID |
InternetMessageId |
String |
The value of the 67D754D6103DC4FB3BA6BC7205DACABA61231@exchange.contoso.com |
Last Error |
LastError |
String |
A text string of the last error that was recorded for a message. |
Message Source Name |
MessageSourceName |
String |
A text string of the name of the component that submitted this message to the queue. |
Queue ID |
Queue |
QueueIdentity |
The value of this property specifies the identity of the queue that holds the message. Enter the queue identity in the form of Server\destination, where destination is a remote domain, mailbox server, persistent queue name, or the queuing database identifier. The database identifier is represented as an integer and can be determined by viewing the message properties. |
Retry Count |
RetryCount |
Integer |
The number of times that delivery of a message to a destination was tried. |
SCL |
SCL |
Integer |
The value of the spam confidence level (SCL) property specifies the SCL of the message. Valid SCL entries are integers 0 through 9. An empty SCL property value indicates that the message hasn't been processed by the Content Filter agent. |
Size (KB) |
Size |
ByteQuantifiedSize |
The size of the message. |
Source IP |
SourceIP |
IP Address |
The IP address of the external server that submitted the message to the Exchange organization. Note If Exchange Server 2007 Service Pack 1 (SP1) is deployed on a computer that is running Windows Server 2008, you can enter IP addresses and IP address ranges in the Internet Protocol Version 4 (IPv4) format, Internet Protocol Version 6 (IPv6) format, or both formats. A default installation of Windows Server 2008 enables support for IPv4 and IPv6. For more information about Exchange 2007 SP1 support for IPv6 addresses, see IPv6 Support in Exchange 2007 SP1 and SP2. |
Status |
Status |
Enumeration |
The current message status. A message can have one of the following status values:
|
Subject |
Subject |
String |
The subject of a message is expressed as a text string. |
Operators to Use When Filtering Messages
When you create a message filter, you must include an operator for the property value to match. Table 2 shows the comparison operators that you can use in a filter expression and how each operator functions.
Table 2 Filter expression operators
Operator | Exchange Management Shell value | Function | Exchange Management Shell code example |
---|---|---|---|
Equals |
-eq |
This operator is used to specify that the results must exactly match the property value that is supplied in the expression. |
To display a list of all messages that have a status of Retry:
|
Does Not Equal |
-ne |
This operator is used to specify that the results should not match the property value that is supplied in the expression. |
To display a list of all messages that do not have a status of Active:
|
Greater Than |
-gt |
This operator is used with properties where the value is expressed as an integer. The filter results only include messages where the value of the specified property is greater than the value that is supplied in the expression. |
To display a list of messages that currently have a retry count that is more than 3:
|
Greater Than or Equals |
-ge |
This operator is used with properties where the value is expressed as an integer. The filter results only include messages where the value of the specified property is greater than or equal to the value that is supplied in the expression. |
To display a list of messages that currently have a retry count that is 3 or more:
|
Less Than |
-lt |
This operator is used with properties where the value is expressed as an integer. The filter results only include messages where the value of the specified property is less than the value that is supplied in the expression. |
To display a list of messages that have an SCL that is less than 6:
|
Less Than or Equals |
-le |
This operator is used with properties where the value is expressed as an integer. The filter results only include messages where the value of the specified property is less than or equal to the value that is supplied in the expression. |
To display a list of messages that have an SCL that is 6 or less:
|
Contains |
-like |
This operator is used with properties where the value is expressed as a text string. The filter results only include messages where the value of the specified property contains the text string that is supplied in the expression. You can include the * wildcard character in a -like statement that is applied to a text string field, but not a field that has the enumeration type. |
To display a list of messages that have a subject that contains the text "payday loan" :
|
You can specify a filter that evaluates multiple expressions by using the -and comparison operator in the Exchange Management Shell or by adding multiple expressions in the Queue Viewer. To be included in the result set, messages must meet all conditions of the filter. For example, the results of the following command will display a list of messages that are sent from any e-mail address that has a domain name that ends in Contoso.com and that have an SCL that is greater than 5:
Get-message -Filter {FromAddress -like "*Contoso.com*" -and SCL -gt 5}
For more information about how to use comparison operators in the Exchange Management Shell, run the following command:
Help about_comparison_operator
For More Information
For more information about managing and filtering messages, see the following topics: