Exchange Onlineメール送信時の表示名設定
目次
はじめに
Exchnage Onlineメール送信時の表示名ですが、社内向けの表示名と社外向けの表示名を分けて利用したい場合があると思います。主な利用シーンは海外企業とのメールやり取りがある場合に、社外向けだけは表示名を英語に社内向けは従来通り日本語でといった使い方が想定されます。本記事では標準機能での実装について記載してきます。
Display Name とSimple Display Name
昨今のビジネスでは、グローバル展開されている企業様のたくさんいらっしゃいます。そんな時に表示名が日本語のままでは何かと不都合が出る場合があります。日本人だけを相手にしているビジネスであればこのままでも十分ですよね。でもメール送信先は海外の場合だって可能性があるわけです。そんな時に利用できるのがSimple Display Nameになります。Simple Display Nameでは、テナント外への送信メールの表示名を設定する属性値になります。
設定方法
Simple Display Nameの設定は、Powershellコマンド以外で設定する方法がありません。Azure AD Connectを使ってActive Directory からユーザ情報を同期していたとしてもこの属性だけはコマンドで設定する必要があります。
利用コマンド
この作業において利用するコマンドはExchange Online のコマンドレットになります。インストール方法や接続方法については別途「Office365 Powershellモジュールまとめ」で記載しておりますので合わせてご確認ください。
コマンド | 詳細 |
---|---|
Set-Mailbox | メールボックスの設定変更を行うコマンドです |
Set-RemoteDomain | Simple Display Nameを有効化します |
コマンドオプションについて
利用するオプションはシンプルに2つだけです。実際はほかの設定と一緒に実行される場合が多い気もしますが、今回は余計なオプションはすべてそぎ落とし、Simple Display Nameだけを設定することを前提とします。
コマンド | コマンドオプション | 用途 | 値 |
---|---|---|---|
Set-Mailbox | -Identity | 対象アカウントを指定します | メールアドレスまたはエイリアス他 |
Set-Mailbox | -SimpleDisplayName | Simple Display Nameの設定をします | 任意の文字列 |
Set-RemoteDomain | -Identity | リモートドメインのポリシー名を指定します | ポリシー名 |
Set-RemoteDomain | -SimpleDisplayName | Simple Display Nameのオン・オフを切り替えます | オン・オフスイッチ |
実際のソースコード
どうするか迷いましたが、テナント内のメールボックスを全部拾い出し、メールアドレスの@より前の部分をSimple Display Nameとして設定する方式でご案内します。会議室や備品などは除外して設定できるようにコーディングしていきます。
#初期設定 #環境に合わせて変更してください。 $UserName = "管理者アカウント名" $Passwd = "管理者パスワード" #接続設定 $CvtPass = ConvertTo-SecureString $Passwd -AsPlainText -Force $UserCredential = New-Object System.Management.Automation.PSCredential($UserName,$CvtPass) Connect-ExchangeOnline -Credential $UserCredential #SimpleDisplayNameを有効化 Set-RemoteDomain -Identity default -UseSimpleDisplayName $True #ユーザごとにSimpleDisplayNameを設定 Get-Mailbox | %{ if ($_.RecipientTypeDetails -eq "UserMailbox"){ Set-Mailbox $_.Alias -SimpleDisplayName ($_.PrimarySmtpAddress).Split("@")[0] } }
下記のように表示名が英語になります。
もう一つの方法
ここまでSimple Display Nameを利用して、外部宛のメールに対する表示名を変更することを前提に記載をしてきていますが、そもそも表示名を使わない方法も検討が可能です。つまりメールアドレスだけを表示してしまって表示名を出さないパターンがこの方法です。こちらはユーザ単位ではなくテナント単位で設定が可能です。
利用コマンド
この設定では、リモートドメインの設定を変更しますので下記のコマンドを利用します。
コマンド | 用途 |
---|---|
Set-RemoteDomain | リモートドメイン設定を変更します |
コマンドオプションについて
コマンドオプションは下記を利用します。DisplaySenderNameオプションのオン・オフで表示名を制御します。
オプション | 用途 | 値 |
---|---|---|
-Identity | 対象ポリシー名を指定します | 任意の文字列 |
-DisplaySenderName | 表示名のオン・オフ | $false |
実際のソースコード
#初期設定 #環境に合わせて変更してください。 $UserName = "管理者アカウント名" $Passwd = "管理者パスワード" #接続設定 $CvtPass = ConvertTo-SecureString $Passwd -AsPlainText -Force $UserCredential = New-Object System.Management.Automation.PSCredential($UserName,$CvtPass) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection Import-PSSession $Session #DisplaySenderNameを無効化 Set-RemoteDomain -Identity default -DisplaySenderName $false
万能ではないSimple Display Name
Simple Display Nameはテナント外に対してメールを送信した際の表示名を設定できる属性だとご案内しました。ここで一つ考えてみてください。例えばグローバル展開している会社様で一つのテナント(契約)で海外グループ会社も一緒に利用している場合、テナント内の海外ユーザへのメールの表示名はDisplay Name 側が表示される動きになります。
Display Nameの一例
結局Simple Display Nameで解決できない問題が発生する会社様もいらっしゃることでしょう。過去の事例で実装されたパターンとしては以下の通りです。正直無理にローカル言語名残さなくても全部英語で統一してしまえば良い気もします。その方が管理は楽でしょうしね。
ただしアドレス帳に対する考慮が必要になります。Exchange Online のアドレス帳の検索は前方一致型になっています。つまり「山田 太郎」という表示名の人を検索する場合、「山田」では検索結果に表示されますが、「太郎」では検索結果に出てこないというところです。
まとめ
いかがだったでしょうか?表示名一つで考えることが意外と多いことがわかっていただけたかと思います。日本語はローカル言語でありますので、グローバルに展開する際には障壁になる場合もあります。今後会社がどういう方向に展開していくのかをよく考えて設計していただくと良いかと思います。一度日本語で設定したものを突然英語表記に変更すると社内から反発も来ることでしょう。あとになってあの時ちゃんと設計しておけばよかったとならないようにベンダーさんとよく相談して進めてくださいね。それでは、本記事が皆様の導入検討・設計の一助となりましたら幸いです。