How to send test email from multiple Exchange users with PowerShell

When you set up a company-wide email signature on Exchange or Office 365 using, e.g. the built-in transport rules feature, you will probably want to verify whether it is correctly added to messages.

The most straightforward and foolproof method is for users to send a test email to you so you can check it.

Or, if you feel like taking a crowdsourcing approach, just have each user send the email to themselves and check the details, etc. personally.

The problem with both those methods is that they rely upon users correctly understanding your request, complying with it and carrying it out properly, all without assistance. Realistically, you have a higher chance of randomly meeting Bill Gates walking down your street with a pet iguana on a leash, than for all 3 of these circumstances to come together magically.

As in many cases, here also PowerShell scripts can save you a lot of time and effort.

The two scripts below utilize the Send-MailMessage cmdlet to send a test message from multiple Exchange/Office 365 users to either their own or your address.

Since company-wide email signatures are added on the level of the server, no additional actions need to be taken for the messages to be stamped with proper footers.

I included the –BodyAsHTML switch in both scripts because HTML emails are most common nowadays.

NOTE: If you are using a 3rd party tool like CodeTwo Exchange Rules or CodeTwo Exchange Rules Pro you can take advantage of the Rules Tester feature to test your email signature.

test email from multiple mailboxes Exchange PowerShell

Sending the test email to senders’ addresses

To learn how to remotely connect to Office 365 using PowerShell, see this article.

This script sends an email with the subject “Test of new company email signature” and body “Hello, Please check if your details are correct” from each user to themselves.

foreach ($Mailbox in (Get-Mailbox)) {
$Name=$Mailbox.Name
$UserSMTP=$Mailbox.PrimarySmtpAddress
Send-MailMessage -To "$Name <$UserSMTP>" -From "$Name <$UserSMTP>" -Subject "Test of new company email signature" [-BodyAsHTML] -Body "Hello, Please check if your details are correct" –SmtpServer Your_SMTP_server_FQDN
}

Sending the test email to one address

This script sends an email with the subject “Test of new company email signature” and body “Some text” from each user to a single (your) mailbox.

foreach ($Mailbox in (Get-Mailbox)) {
$Name=$Mailbox.Name
$UserSMTP=$Mailbox.PrimarySmtpAddress
Send-MailMessage -To "Your_display_name <Your_SMTP_address>" -From "$Name <$UserSMTP>" -Subject "Test of new company email signature" [-BodyAsHTML] -Body "Some text" -SmtpServer Your_SMTP_server_FQDN
}

Limiting the range of senders’

To limit the range of senders, use any of the Get-Mailbox cmdlet’s parameters.

Obviously, the one that allows for most precise targeting is the –Filter parameter. For example, to send messages from users belonging to only one department, use the following syntax:

…Get-Mailbox –Filter {Department –eq ‘Name_of_department’}…

Learn more about the Get-Mailbox cmdlet

Final actions

Having run this test, you can make any adjustments you feel are necessary and then enjoy your new email signature.

Software tips

Tools for Microsoft 365

Recommended articles

How to export users from Active Directory

How to export users from Active Directory

You might need to export users from Active Directory in more than one situation. Good examples include Exchange migration and creating a test Exchange environment. You can imagine how painful it would be to do those tasks manually, especially in a large organization. Luckily, users can be exported easily from Active Directory and saved into a CSV (comma separated value) file. In this article I am going to show you how to do it. Watch the video below for a quick walkthrough and read the following article if you want to learn more.
How to migrate Exchange public folders to a shared mailbox in Office 365

How to migrate Exchange public folders to a shared mailbox in Office 365

This article shows, step by step, how to easily migrate Exchange public folders to an Office 365 (Microsoft 365) shared mailbox using CodeTwo Migration software. The article also contains a guide on how to create a shared mailbox in Office 365 and how to access it from a mobile device.
New-ComplianceSearch: how to use the newer version of Search-Mailbox

New-ComplianceSearch: how to use the newer version of Search-Mailbox

Microsoft retired the Search-Mailbox cmdlet – now what? Discover how to use New-ComplianceSearch, its key advantages and how to make the switch seamlessly.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

CodeTwo sp. z o.o. sp. k. is a controller of your personal data.
See our Privacy Policy to learn more.