New-InboxRule

This cmdlet is available in on-premises Exchange Server 2016 and in the cloud-based service. Some parameters and settings may be exclusive to one environment or the other.

Use the New-InboxRule cmdlet to create Inbox rules in mailbox mailboxes. Inbox rules process messages in the Inbox based on conditions specified and take actions such as moving a message to a specified folder or deleting a message.

You must have adequate permissions on the mailbox to create an Inbox rule.

When you create, modify, remove, enable, or disable an Inbox rule in Exchange PowerShell, any client-side rules created by MicrosoftOutlook are removed.

Parameters that are used for conditions also have corresponding exception parameters. When conditions specified in an exception are matched, the rule isn't applied to the message. Exception parameters begin with ExceptIf. For example, the exception parameter for SubjectOrBodyContainsWords is ExceptIfSubjectOrBodyContainsWords.

You need to be assigned permissions before you can run this cmdlet. Although all parameters for this cmdlet are listed in this topic, you may not have access to some parameters if they're not included in the permissions assigned to you. To see what permissions you need, see the "Inbox rules" entry in the Recipients Permissions topic.

The FromMessageId parameter specifies a message ID to create an Inbox rule based on the properties of that message. You must specify the Base64-encoded StoreObjectId of the message. Valid values include one of the following:

MailboxId\StoreObjectId

StoreObjectId

When you create an Inbox rule by specifying the FromMessageId parameter, the following properties of that message are used to create the rule:

Subject The message subject is added to the SubjectContainsWords property of the rule.

From The message sender is added to the From property of the rule.

To and Ccrecipients Recipients in the To and Cc fields of the message are added to the SentTo property of the rule.

Name

Required

System.String

The Name parameter specifies a name for the Inbox rule being created.

ValidateOnly

Required

System.Management.Automation.SwitchParameter

The ValidateOnly switch tells the cmdlet to evaluate the conditions and requirements necessary to perform the operation and then reports whether the operation will succeed or fail. No changes are made when the ValidateOnly switch is used.

AlwaysDeleteOutlookRulesBlob

Optional

System.Management.Automation.SwitchParameter

The AlwaysDeleteOutlookRulesBlob parameter suppresses a warning that end users or administrators get if they use Outlook Web App or Windows PowerShell to modify Inbox rules.

ApplyCategory

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The ApplyCategory parameter specifies one or more categories to apply to a message.

ApplySystemCategory

Optional

Microsoft.Exchange.Data.MultiValuedProperty

PARAMVALUE: MultiValuedProperty

BodyContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The BodyContainsWords parameter specifies one or more words or phrases to check the message body for. If phrases contain a space, you must enclose it in quotation marks ("). Use a comma to separate phrases.

Confirm

Optional

System.Management.Automation.SwitchParameter

The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on if the cmdlet requires confirmation before proceeding.

Destructive cmdlets (for example, Remove-* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: -Confirm:$false.

Most other cmdlets (for example, New-* and Set-* cmdlets) don't have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.

CopyToFolder

Optional

Microsoft.Exchange.Configuration.Tasks.MailboxFolderIdParameter

The CopyToFolder parameter specifies the name of an existing mailbox folder to copy the message to.

DeleteMessage

Optional

System.Boolean

The DeleteMessage parameter specifies whether the message is sent to the Deleted Items folder. If set to $true, the message is sent to the Deleted Items folder.

DeleteSystemCategory

Optional

Microsoft.Exchange.Data.MultiValuedProperty

PARAMVALUE: MultiValuedProperty

DomainController

Optional

Microsoft.Exchange.Data.Fqdn

This parameter is available only in on-premises Exchange 2016.

The DomainController parameter specifies the domain controller that's used by this cmdlet to read data from or write data to Active Directory. You identify the domain controller by its fully qualified domain name (FQDN). For example, dc01.contoso.com.

ExceptIfBodyContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The ExceptIfBodyContainsWords parameter specifies one or more words or phrases to check the message body for. If the message body contains the specified words or phrases, the Inbox rule action isn't applied.

ExceptIfFlaggedForAction

Optional

System.String

The ExceptIfFlaggedForAction parameter specifies one or more message flags for which to check. You can use the following values:

Any

Call

DoNotForward

FollowUp

ForYourInformation

Forward

NoResponseNecessary

Read

Reply

ReplyToAll

Review

If the requested action in the message matches the requested action specified in this parameter, the Inbox rule action isn't applied.

ExceptIfFrom

Optional

Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter[]

The ExceptIfFrom parameter specifies a recipient to check in the From field of the message. If the message sender matches the senders specified in this parameter, the Inbox rule action isn't applied.

ExceptIfFromAddressContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The ExceptIfFromAddressContainsWords parameter specifies one or more words to check in the sender's address. If the sender's address contains the specified words, the Inbox rule action isn't applied to the message.

The ExceptIfHasClassification parameter checks the message for the specified classification name. Use the Get-MessageClassification cmdlet to retrieve a list of classifications defined in the organization.

If the message classification matches the classification specified in this parameter, the Inbox rule action isn't applied.

ExceptIfHeaderContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The ExceptIfHeaderContainsWords parameter specifies one or more words to check for in the specified message header.

If the message header contains the words specified in this parameter, the Inbox rule action isn't applied.

ExceptIfMessageTypeMatches

Optional

Microsoft.Exchange.Data.Storage.InboxRuleMessageType

The ExceptIfMessageTypeMatches parameter specifies a message type. You can use the following values:

AutomaticReply

AutomaticForward

Encrypted

Calendaring

CalendaringResponse

PermissionControlled

Voicemail

Signed

ApprovalRequest

ReadReceipt

NonDeliveryReport

If the message type equals one of the preceding values, the Inbox rule action isn't applied.

ExceptIfMyNameInCcBox

Optional

System.Boolean

The ExceptIfMyNameInCcBox parameter specifies that the Cc field of messages be checked for the mailbox owner's address.

This parameter accepts $true or $false.

If the name of the recipient whose Inbox is being edited is in the Cc box, the Inbox rule action isn't applied.

ExceptIfMyNameInToBox

Optional

System.Boolean

The ExceptIfMyNameInToBox parameter specifies that the To field of messages be checked for the mailbox owner's address.

If the name of the recipient whose Inbox is being edited is in the To box, the Inbox rule action isn't applied.

This parameter accepts $true or $false.

ExceptIfMyNameInToOrCcBox

Optional

System.Boolean

The ExceptIfMyNameInToOrCcBox parameter specifies that the To or Cc fields of messages be checked for the mailbox owner's address.

If the name of the recipient whose Inbox is being edited is in the To or Cc box, the Inbox rule action isn't applied.

This parameter accepts $true or $false.

ExceptIfMyNameNotInToBox

Optional

System.Boolean

The ExceptIfMyNameNotInToBox parameter matches messages where the mailbox owner isn't addressed in the To field of the message.

If the name of the recipient whose Inbox is being edited is not in the To box, the Inbox rule action isn't applied.

This parameter accepts $true or $false.

ExceptIfReceivedAfterDate

Optional

Microsoft.Exchange.ExchangeSystem.ExDateTime

The ExceptIfReceivedAfterDate parameter specifies to check for messages received after the specified date.

Use the short date format that's defined in the Regional Options settings on the computer where you're running the command. For example, if the computer is configured to use the short date format mm/dd/yyyy, enter 09/01/2015 to specify September 1, 2015. You can enter the date only, or you can enter the date and time of day. If you enter the date and time of day, enclose the value in quotation marks ("), for example, "09/01/2015 5:00 PM".

If the message was received after the date specified in this parameter, the Inbox rule action isn't applied.

ExceptIfReceivedBeforeDate

Optional

Microsoft.Exchange.ExchangeSystem.ExDateTime

The ExceptIfReceivedBeforeDate parameter specifies to check for messages received before the specified date.

Use the short date format that's defined in the Regional Options settings on the computer where you're running the command. For example, if the computer is configured to use the short date format mm/dd/yyyy, enter 09/01/2015 to specify September 1, 2015. You can enter the date only, or you can enter the date and time of day. If you enter the date and time of day, enclose the value in quotation marks ("), for example, "09/01/2015 5:00 PM".

If the message was received before the time specified in this parameter, the Inbox rule action isn't applied.

ExceptIfRecipientAddressContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The ExceptIfRecipientAddressContainsWords parameter specifies one or more words to check in the message recipient's address.

If the recipient address contains one or more words specified in this parameter, the Inbox rule action isn't applied.

ExceptIfSentOnlyToMe

Optional

System.Boolean

The ExceptIfSentOnlyToMe parameter specifies to check for messages where the mailbox owner is the only recipient.

This parameter accepts $true or $false.

If the message is only sent to the recipient whose Inbox rule is being edited, the Inbox rule action isn't applied.

ExceptIfSentTo

Optional

Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter[]

The ExceptIfSentTo parameter specifies an exception to the rule that's based on the recipient. The rule isn't applied to messages sent to the specified recipient. You can use any value that uniquely identifies the recipient. For example:

Name

Distinguished name (DN)

Display name

Email address

GUID

You can specify multiple values separated by commas.

To enter multiple values, use the following syntax: <value1>,<value2>.... If the values contain spaces or otherwise require quotation marks, use the following syntax: "<value1>","<value2>"....

ExceptIfSubjectContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The ExceptIfSubjectContainsWords parameter specifies one or more words or phrases to check in the message subject.

If the message subject contains one or more words or phrases specified in this parameter, the Inbox rule action isn't applied.

ExceptIfSubjectOrBodyContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The ExceptIfSubjectOrBodyContainsWords parameter specifies one or more words or phrases to check in the message subject or body.

If the message subject or body contains one or more of the words or phrases specified in this parameter, the Inbox rule action isn't applied.

ExceptIfWithImportance

Optional

Microsoft.Exchange.Data.Storage.Importance

The ExceptIfWithImportance parameter specifies a message importance level. Valid values include one of the following:

Low

Normal

High

If the message importance matches the importance specified in this parameter, the Inbox rule action isn't applied.

ExceptIfWithinSizeRangeMaximum

Optional

Microsoft.Exchange.Data.ByteQuantifiedSize

The ExceptIfWithinSizeRangeMaximum parameter specifies the maximum message size. When using this parameter, you must also specify the minimum message size value using the ExceptIfWithinSizeRangeMinimum parameter.

If the message size exceeds the maximum value specified in this parameter, the Inbox rule action isn't applied.

ExceptIfWithinSizeRangeMinimum

Optional

Microsoft.Exchange.Data.ByteQuantifiedSize

The ExceptIfWithinSizeRangeMinimum parameter specifies the minimum message size. When using this parameter, you must also specify a maximum message size value using the ExceptIfWithinSizeRangeMaximum parameter.

If the message size is smaller than the minimum value specified in this parameter, the Inbox rule action isn't applied.

ExceptIfWithSensitivity

Optional

Microsoft.Exchange.Data.Storage.Sensitivity

The ExceptIfWithSensitivity parameter specifies a message sensitivity level. You can use the following values:

Normal

Personal

Private

CompanyConfidential

If the sensitivity matches the sensitivity value specified in this parameter, the Inbox rule action isn't applied.

FlaggedForAction

Optional

System.String

The FlaggedForAction parameter specifies one or more message flags for which to check. Values include:

Any

Call

DoNotForward

FollowUp

ForYourInformation

Forward

NoResponseNecessary

Read

Reply

ReplyToAll

Review

Force

Optional

System.Management.Automation.SwitchParameter

The Force switch specifies whether to suppress warning or confirmation messages. You can use this switch to run tasks programmatically where prompting for administrative input is inappropriate. You don't need to specify a value with this switch.

A confirmation prompt warns you if the mailbox contains rules that were created by Outlook, because any client-side rules will be removed by the actions of this cmdlet.

ForwardAsAttachmentTo

Optional

Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter[]

The ForwardAsAttachmentTo parameter specifies a recipient to forward the message to as an attachment.

ForwardTo

Optional

Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter[]

The ForwardTo parameter specifies a recipient to forward the message to.

From

Optional

Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter[]

The From parameter specifies the identity of the sender as a rule condition.

FromAddressContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The FromAddressContainsWords parameter specifies one or more words to check in the From field of the message.

The HasClassification parameter checks messages for the specified message classification.

HeaderContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The HeaderContainsWords parameter specifies one or more words to match in the specified message header.

Mailbox

Optional

Microsoft.Exchange.Configuration.Tasks.MailboxIdParameter

The Mailbox parameter specifies the mailbox that contains the Inbox rule. You can use any value that uniquely identifies the mailbox.

For example:

Name

Display name

Alias

Distinguished name (DN)

Canonical DN

<domain name>\<account name>

Email address

GUID

LegacyExchangeDN

SamAccountName

User ID or user principal name (UPN)

MarkAsRead

Optional

System.Boolean

The MarkAsRead parameter specifies whether to mark the message as read. When set to $true, the MarkAsRead parameter marks the message as read.

MarkImportance

Optional

Microsoft.Exchange.Data.Storage.Importance

The MarkImportance parameter specifies that the message importance be marked with one of the following values:

Low

Normal

High

MessageTypeMatches

Optional

Microsoft.Exchange.Data.Storage.InboxRuleMessageType

The MessageTypeMatches parameter specifies a message type. You can use the following values:

AutomaticReply

AutomaticForward

Encrypted

Calendaring

CalendaringResponse

PermissionControlled

Voicemail

Signed

ApprovalRequest

ReadReceipt

NonDeliveryReport

MoveToFolder

Optional

Microsoft.Exchange.Configuration.Tasks.MailboxFolderIdParameter

The MoveToFolder parameter specifies an existing mailbox folder to which the message is copied.

MyNameInCcBox

Optional

System.Boolean

The MyNameInCcBox parameter specifies that the mailbox for which the rule is being created should appear in the Cc field of the message. To use this predicate, set the value to $true.

MyNameInToBox

Optional

System.Boolean

The MyNameInToBox parameter specifies that the mailbox for which the rule is being created should appear in the To field of the message. To use this predicate, set the value to $true.

MyNameInToOrCcBox

Optional

System.Boolean

The MyNameInToOrCcBox parameter specifies that the mailbox for which the rule is being created should appear in the To or Cc fields of the message. To add this condition, set the value to $true.

MyNameNotInToBox

Optional

System.Boolean

The MyNameNotInToBox parameter checks that the mailbox owner's name isn't in the To box. We recommend that you set the value to $true to use this predicate.

PinMessage

Optional

System.Boolean

PARAMVALUE: $true | $false

Priority

Optional

System.Int32

The Priority parameter sets a priority for the Inbox rule.

ReceivedAfterDate

Optional

Microsoft.Exchange.ExchangeSystem.ExDateTime

The ReceivedAfterDate parameter specifies a date. The rule is applied to messages received after the specified date.

Use the short date format that's defined in the Regional Options settings on the computer where you're running the command. For example, if the computer is configured to use the short date format mm/dd/yyyy, enter 09/01/2015 to specify September 1, 2015. You can enter the date only, or you can enter the date and time of day. If you enter the date and time of day, enclose the value in quotation marks ("), for example, "09/01/2015 5:00 PM".

ReceivedBeforeDate

Optional

Microsoft.Exchange.ExchangeSystem.ExDateTime

The ReceivedBeforeDate parameter specifies a date. The rule is applied only to messages received before the specified date.

Use the short date format that's defined in the Regional Options settings on the computer where you're running the command. For example, if the computer is configured to use the short date format mm/dd/yyyy, enter 09/01/2015 to specify September 1, 2015. You can enter the date only, or you can enter the date and time of day. If you enter the date and time of day, enclose the value in quotation marks ("), for example, "09/01/2015 5:00 PM".

RecipientAddressContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The RecipientAddressContainsWords parameter specifies one or more words to check for in a recipient address.

RedirectTo

Optional

Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter[]

The RedirectTo parameter specifies a recipient to redirect the message to.

SendTextMessageNotificationTo

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The SendTextMessageNotificationTo parameter specifies one or more text message recipients to send a notification to.

SentOnlyToMe

Optional

System.Boolean

The SentOnlyToMe parameter specifies whether the mailbox owner is specified as the only recipient. You can use the following values:

$true

$false

SentTo

Optional

Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter[]

The SentTo parameter specifies the identity of a recipient as a condition.

StopProcessingRules

Optional

System.Boolean

The StopProcessingRules parameter specifies that Exchange stop processing additional rules if the conditions of this Inbox rule are met.

SubjectContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The SubjectContainsWords parameter specifies one or more keywords to be matched in the subject field of a message.

SubjectOrBodyContainsWords

Optional

Microsoft.Exchange.Data.MultiValuedProperty

The SubjectOrBodyContainsWords parameter specifies one or more words to be matched in the message subject or body.

WhatIf

Optional

System.Management.Automation.SwitchParameter

The WhatIf switch simulates the actions of the command. You can use this switch to view the changes that would occur without actually applying those changes. You don't need to specify a value with this switch.

WithImportance

Optional

Microsoft.Exchange.Data.Storage.Importance

The WithImportance parameter checks messages with the specified importance level. You can use the following values:

High

Normal

Low

WithinSizeRangeMaximum

Optional

Microsoft.Exchange.Data.ByteQuantifiedSize

The WithinSizeRangeMaximum parameter specifies the maximum message size. When using this parameter, you must also specify a minimum message size value using the WithinSizeRangeMinimum parameter.

WithinSizeRangeMinimum

Optional

Microsoft.Exchange.Data.ByteQuantifiedSize

The WithinSizeRangeMinimum parameter specifies the minimum message size. When using this parameter, you must also specify a maximum message size value using the WithinSizeRangeMaximum parameter.

WithSensitivity

Optional

Microsoft.Exchange.Data.Storage.Sensitivity

The WithSensitivity parameter specifies a message sensitivity level. Valid values include one of the following: