Using set-MailboxJunkEmailConfiguration in Powershell

Using set-MailboxJunkEmailConfiguration in Powershell

Managing email in Microsoft Exchange environments requires balancing the need to filter out spam while ensuring important messages are not marked as junk.

Fortunately, PowerShell's Set-MailboxJunkEmailConfiguration cmdlet provides administrators with a precise tool to customize junk email settings for individual mailboxes, enhancing the efficiency and reliability of email delivery.

In this guide, we’ll learn how to use Set-MailboxJunkEmailConfiguration in PowerShell so you can easily manage junk email settings in your organization.

What's the Set-MailboxJunkEmailConfiguration Command?

The Set-MailboxJunkEmailConfiguration cmdlet in PowerShell is used in Exchange Online and Exchange Server to manage junk email settings for a specific mailbox.

This cmdlet allows administrators to configure how junk emails are handled, such as enabling or disabling the junk email rule, adding or removing email addresses or domains to safe senders and blocked senders lists, and setting actions for suspected junk emails.

Here’s the syntax of Set-MailboxJunkEmailConfiguration, as well as a quick explanation of each parameter:

Set-MailboxJunkEmailConfiguration

[-Identity] <MailboxIdParameter>

[-BlockedSendersAndDomains <MultiValuedProperty>]

[-Confirm]

[-ContactsTrusted <Boolean>]

[-DomainController <Fqdn>]

[-Enabled <Boolean>]

[-FailOnError <Boolean>]

[-IgnoreDefaultScope]

[-SenderScreeningEnabled <Boolean>]

[-TrustedListsOnly <Boolean>]

[-TrustedRecipientsAndDomains <MultiValuedProperty>]

[-TrustedSendersAndDomains <MultiValuedProperty>]

[-WhatIf]

[<CommonParameters>]

  • -Identity <MailboxIdParameter>: Specifies the mailbox for which the junk email settings are being configured.
  • -BlockedSendersAndDomains <MultiValuedProperty>: Defines the email addresses or domains that should be added to the blocked senders list.
  • -Confirm: Prompts for confirmation before executing the cmdlet.
  • -ContactsTrusted <Boolean>: Indicates whether contacts in the mailbox should be automatically trusted and not marked as junk.
  • -DomainController <Fqdn>: Specifies the domain controller to be used by this cmdlet to read or write data from Active Directory.
  • -Enabled <Boolean>: Enables or disables the junk email rule for the mailbox.
  • -FailOnError <Boolean>: Determines whether the operation should halt and report an error if a failure occurs.
  • -IgnoreDefaultScope: Allows the cmdlet to ignore the default recipient scope and search across the entire forest.
  • -SenderScreeningEnabled <Boolean>: Enables or disables sender screening, affecting how sender information is used to filter junk email.
  • -TrustedListsOnly <Boolean>: Configures the mailbox to only accept emails from addresses and domains in the safelist collection.
  • -TrustedRecipientsAndDomains <MultiValuedProperty>: Specifies the email addresses or domains that should be added to the trusted recipients list.
  • -TrustedSendersAndDomains <MultiValuedProperty>: Defines the email addresses or domains that should be added to the trusted senders list.

What Can You Use Set-MailboxJunkEmailConfiguration For?

The primary goal of the Set-MailboxJunkEmailConfiguration cmdlet is to manage junk mail settings for mailboxes in Exchange Online and Exchange Server. Let’s take a quick look at three examples of how this PowerShell command can be used:

  1. Customizing Junk Email Filters for Specific Users: An administrator can use this cmdlet to fine-tune the junk email settings for individual users who receive a lot of legitimate emails that are incorrectly marked as junk. By adding trusted senders to the safe senders list or adjusting the junk email rule, the admin ensures that important emails reach the user's inbox.
  2. Blocking Specific Senders for Enhanced Security: If certain email addresses or domains are known to send spam or phishing emails, an administrator can use this cmdlet to add these to a user's blocked senders list. This helps to prevent malicious emails from reaching the user's inbox, enhancing the overall security posture.
  3. Disabling Junk Email Filtering for Mailboxes: In scenarios where an organization's security infrastructure includes comprehensive spam filtering before emails reach Exchange, an administrator might choose to disable the junk email rule for certain mailboxes. This action can be done using the cmdlet to ensure users do not miss important emails due to hardcore spam filtering by the mailbox's built-in rules.

Requisites to Use the Set-MailboxJunkEmailConfiguration PowerShell Command

If you wish to efficiently use this cmdlet, there are a few prerequisites that you need to comply with, according to Microsoft’s website:

  • Permissions: You need to be assigned the appropriate permissions to run this cmdlet. This includes having the necessary roles that allow access to the parameters of the cmdlet.
  • Exchange Environment: You need to work either in an on-premises exchange environment or online. The cmdlet functions differently in these environments, especially regarding the junk email rule's impact on mail flow.
  • Understanding of Junk Email Rule: Knowledge of the junk email rule and how it controls the delivery of messages to the Junk Email folder or Inbox based on the SCL (Spam Confidence Level) Junk Email Folder threshold and the safelist collection.
  • Safelist Collection Configuration: Familiarity with configuring the safelist collection, which includes the Safe Senders list, the Safe Recipients list, and the Blocked Senders list. Users can adjust these settings via Microsoft Outlook or Outlook on the web.

How to use Set-MailboxJunkEmailConfiguration in 3 Steps

You need to follow three quick steps to effectively use the Set-MailboxJunkEmailConfiguration PowerShell command.

Step 1: Open PowerShell and Connect to Exchange

Start by launching PowerShell on your computer. If you are managing mailboxes in an on-premises Exchange environment, you can skip to the next step.

However, if you are working with Exchange Online, you must first connect to the Exchange Online service using PowerShell. To do this, enter your credentials in PowerShell, and establish a connection to Exchange Online using the following basic command:

Connect-ExchangeOnline -UserPrincipalName $UserCredential.UserName -Credential $UserCredential


This step ensures you have the necessary permissions and access to manage mailboxes in Exchange Online.

Step 2: Identify the Mailbox and Determine Settings

Now, identify the mailbox you want to configure by specifying its email address, alias, or another unique identifier. You will need to decide on the junk email settings you wish to apply to this mailbox.

For instance, you may want to enable or disable the junk email rule, add certain email addresses or domains to the blocked senders list to prevent spam, and specify trusted senders and domains to ensure important emails are not marked as junk.

Understanding the specific requirements for the mailbox is crucial in configuring the settings accurately, and that’s why learning the syntax of this command is so important.

Step 3: Run the Set-mailboxJunkEmailConfiguration Cmdlet with Parameters

With the mailbox identified and settings determined, you can now execute the Set-MailboxJunkEmailConfiguration cmdlet.

Let's take a look at the following example:

Set-MailboxJunkEmailConfiguration "James Smith" -TrustedSendersAndDomains @{Add="meetingroom365.com"} -BlockedSendersAndDomains @{Add="[email protected]"}

The output of the Set-MailboxJunkEmailConfiguration cmdlet updates the junk email settings for the mailbox 'James Smith' by adding 'meetingroom365.com' to the list of trusted senders and domains and '[email protected]' to the list of blocked senders and domains.

Here’s another example:

Set-MailboxJunkEmailConfiguration "James Smith" -Enabled $false

In this case, the cmdlet disables the junk email filter for the mailbox 'James Smith.' This process allows for tailored spam filtering, improving email management and security for users.

By customizing junk email settings on a per-mailbox basis, administrators can effectively balance spam filtering with the need to ensure important emails are not mistakenly marked as junk.

Using this cmdlet enhances the precision and reliability of email management, leading to a more efficient and secure communication system within your organization.