Exchange Online を使用する際にカスタムドメインだけでなく、「onmicrosoft.com」のドメインでもメールを受け取りたいとうケースがあります。
PowerShellで作成したユーザーは明確に指定いないとエイリアスが設定されないので、
メールのエイリアスとして「onmicrosoft.com」を設定する方法を紹介します。
Microsoft 365管理センターからユーザー作成した場合は「onmicrosoft.com」のドメインはデフォルトで使用できます。
一人のユーザーに実行
Exchange Online に接続します。
グローバル管理者または、Exchange Online 管理者でサインインします。
#接続
Connect-ExchangeOnline
以下のコマンドで現在受信可能なメールアドレス設定を確認します。
#現在の設定確認
Get-Mailbox -Identity "<対象のUserPrincipalName>" | Select-Object UserPrincipalName,EmailAddresses
SMTPがプライマリのメールアドレスとなります。
SIPはTeamsが使えるライセンスを付与している場合に作られます。
UserPrincipalName EmailAddresses
----------------- --------------
user01@example.com {SMTP:user01@example.com, SIP:user01@example.com}
「onmicrosoft.com」 のエイリアスを追加します。
#エイリアス追加
Set-Mailbox -Identity "[email protected]" -EmailAddresses @{add="[email protected]"}
再度受信可能なメールアドレス設定を確認します。
#現在の設定確認
Get-Mailbox -Identity "<対象のUserPrincipalName>" | Select-Object UserPrincipalName,EmailAddresses
以下のように出力されます。
小文字の「smtp」の後に書かれているのがエイリアスのメールアドレスになります。
UserPrincipalName EmailAddresses
----------------- --------------
user01@example.com {SIP:user01@example.com, SMTP:user01@example.com, smtp:user01@onmicrosoft.com}
作業が終了したので、Exchange Online から切断します。
#切断
Disconnect-ExchangeOnline
テナント全体で実行
PowerShellでMicrosoft 365 ユーザーを作成すると「onmicrosoft.com」のドメインをメールのエイリアスに追加できていないケースがあります。
テナント内のユーザーすべて「onmicrosoft.com」のアドレスでもメールを受け取れるように設定します。
Exchange Online に接続します。
#接続
Connect-ExchangeOnline
テナント内のすべてのメールアドレスを取得し、変数に格納します。
#テナント内すべてのメールアドレスを取得します。
$AllMail = Get-Mailbox | Select-Object UserPrincipalName,EmailAddresses
メールのエイリアスを追加します。
#エイリアス追加
foreach($m in $AllMail)
{
#UPNの@より前をmailNickNameとして取得します。
$txt = $m.UserPrincipalName
$re = "[a-z0-9!#\$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#\$%&'*+/=?^_`{|}~-]+)*@"
$mailNickname = [regex]::Match($txt, $re, "IgnoreCase").Value.Replace("@","")
$add_mail = $mailNickname + "<追加するドメイン>"
Set-Mailbox -Identity $m.UserPrincipalName -EmailAddresses @{add=$add_mail}
}
実行結果を確認します。
#結果を出力
$result = foreach($m in $AllMail)
{
Get-Mailbox -Identity $m.UserPrincipalName `
| Select-Object UserPrincipalName,EmailAddresses
}
証跡としてCSVファイルを作成します。
#確認用のCSVファイル作成
$result | export-CSV -Path "ファイルへのパス+ファイル名" -Append -Encoding utf8BOM
作業終了しましたので、Exchange Onlineから切断します。
#切断
Disconnect-ExchangeOnline
まとめ、所感
ユーザー作成等PowerShellで行うとメールのエイリアスで「onmicrosoft」のドメインが設定されていないことがあります。
メール環境をExchange Online へ移行する際に「onmicrosoft.com」のドメインでメールを受け取りたいというケースでメールのエイリアスが必要となるので割と大事な作業手順となります。