Office 365

Office 365 – Adding email addresses based on Email Address Policy

Email Address Policies are bread and butter in Microsoft Exchange world. If you work with On-Premise Exchange 2007, Exchange 2010, Exchange 2013/2016 you most likely set it up more than once. Unfortunately if you're Office 365 Exchange Online Administrator and don't have On-Premise Exchange in Hybrid scenario to use, Microsoft doesn't give you any GUI option to do this except editing email addresses one by one.

Doing any modifications via PowerShell is also gonna set you back couple of hours as well. Recently we've been asked by customer with 20 accounts to create and manage on Office 365 with multiple domains and I didn't want to spend hours on manual labor creating it, I've decided to write a little script that does that for me. Hope you will find it useful in your scenarios.

Solution

Script takes similar approach known to Microsoft Exchange administrators and allows easy configuration of Email Address Policies based on templates.

- "%g.%s@company.org.pl"  # would give przemyslaw.klys@company.org.pl
- "%1g.%s@company.org.pl" # would give p.klys@company.org.pl
- "%1g%s@company.org.pl"  # would give pklys@company.org.pl
- "%3g.%s@company.org.pl" # would give prz.klys@company.org.pl
- "%g.%1s@company.org.pl" # would give przemyslaw.k@company.org.pl
- "%g@company.pl"         # would give przemyslaw@company.pl

Adding 3 new domains to Office 365 can be easy with few lines of code:

cls
$login = Read-Host "Please enter your login (in form of email)"
$password = Read-Host "Please enter your password"
$sessionName = Read-Host "Please enter session name (leave blank for default)"

Connect-Ex -login $login -Password $password -sessionName $sessionName
Add-EmailAddressToUsersFromTemplate -EmailTemplate "%g.%s@company.org.pl" -Commit $false -ExcludeUsers "company@companykatowice.onmicrosoft.com","kalendarz@company.org.pl"
Add-EmailAddressToUsersFromTemplate -EmailTemplate "%1g.%s@company.org.pl" -ExcludeUsers "company@companykatowice.onmicrosoft.com"
Add-EmailAddressToUsersFromTemplate -EmailTemplate "%1g%s@company.org.pl" -ShowSummaryTable $true -ShowSummaryLines $true -Commit $true -ExcludeUsers "company@companykatowice.onmicrosoft.com","kalendarz@company.org.pl","przemyslaw.klys@companykatowice.onmicrosoft.com"
Disconnect-EX -sessionName $sessionName

Which should give similar input to one below

Full description of the script mimicking functionality of Email Address Policies  can be found at Office365-AddBulkEmailAddresses.ps1

This post was last modified on %s = human-readable time difference 14:38

Przemyslaw Klys

System Architect with over 14 years of experience in the IT field. Skilled, among others, in Active Directory, Microsoft Exchange and Office 365. Profoundly interested in PowerShell. Software geek.

Share
Published by
Przemyslaw Klys

Recent Posts

Upgrade Azure Active Directory Connect fails with unexpected error

Today, I made the decision to upgrade my test environment and update the version of…

1 month ago

Mastering Active Directory Hygiene: Automating Stale Computer Cleanup with CleanupMonster

Have you ever looked at your Active Directory and wondered, "Why do I still have…

2 months ago

Active Directory Replication Summary to your Email or Microsoft Teams

Active Directory replication is a critical process that ensures the consistent and up-to-date state of…

7 months ago

Syncing Global Address List (GAL) to personal contacts and between Office 365 tenants with PowerShell

Hey there! Today, I wanted to introduce you to one of the small but excellent…

11 months ago

Active Directory Health Check using Microsoft Entra Connect Health Service

Active Directory (AD) is crucial in managing identities and resources within an organization. Ensuring its…

1 year ago

Seamless HTML Report Creation: Harness the Power of Markdown with PSWriteHTML PowerShell Module

In today's digital age, the ability to create compelling and informative HTML reports and documents…

1 year ago