ヘッダー画像

Exchange Onlineメール送信時の表示名設定

はじめに

Exchnage Onlineメール送信時の表示名ですが、社内向けの表示名と社外向けの表示名を分けて利用したい場合があると思います。主な利用シーンは海外企業とのメールやり取りがある場合に、社外向けだけは表示名を英語に社内向けは従来通り日本語でといった使い方が想定されます。本記事では標準機能での実装について記載してきます。

Display Name とSimple Display Name

昨今のビジネスでは、グローバル展開されている企業様のたくさんいらっしゃいます。そんな時に表示名が日本語のままでは何かと不都合が出る場合があります。日本人だけを相手にしているビジネスであればこのままでも十分ですよね。でもメール送信先は海外の場合だって可能性があるわけです。そんな時に利用できるのがSimple Display Nameになります。Simple Display Nameでは、テナント外への送信メールの表示名を設定する属性値になります。

Exchange Online 表示名

設定方法

Simple Display Nameの設定は、Powershellコマンド以外で設定する方法がありません。Azure AD Connectを使ってActive Directory からユーザ情報を同期していたとしてもこの属性だけはコマンドで設定する必要があります。

利用コマンド

この作業において利用するコマンドはExchange Online のコマンドレットになります。インストール方法や接続方法については別途「Office365 Powershellモジュールまとめ」で記載しておりますので合わせてご確認ください。

コマンド詳細
Set-Mailboxメールボックスの設定変更を行うコマンドです
Set-RemoteDomainSimple Display Nameを有効化します
Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)

コマンドオプションについて

利用するオプションはシンプルに2つだけです。実際はほかの設定と一緒に実行される場合が多い気もしますが、今回は余計なオプションはすべてそぎ落とし、Simple Display Nameだけを設定することを前提とします。

コマンドコマンドオプション用途
Set-Mailbox-Identity対象アカウントを指定しますメールアドレスまたはエイリアス他
Set-Mailbox-SimpleDisplayNameSimple Display Nameの設定をします任意の文字列
Set-RemoteDomain-Identityリモートドメインのポリシー名を指定しますポリシー名
Set-RemoteDomain-SimpleDisplayNameSimple 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

もう一つの方法

ここまでSimple Display Nameを利用して、外部宛のメールに対する表示名を変更することを前提に記載をしてきていますが、そもそも表示名を使わない方法も検討が可能です。つまりメールアドレスだけを表示してしまって表示名を出さないパターンがこの方法です。こちらはユーザ単位ではなくテナント単位で設定が可能です。

DisplaySenderName設定

利用コマンド

この設定では、リモートドメインの設定を変更しますので下記のコマンドを利用します。

コマンド用途
Set-RemoteDomainリモートドメイン設定を変更します

コマンドオプションについて

コマンドオプションは下記を利用します。DisplaySenderNameオプションのオン・オフで表示名を制御します。

オプション用途
-Identity対象ポリシー名を指定します任意の文字列
-DisplaySenderName表示名のオン・オフ$false
Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)

実際のソースコード

#初期設定
#環境に合わせて変更してください。
$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 のアドレス帳の検索は前方一致型になっています。つまり「山田 太郎」という表示名の人を検索する場合、「山田」では検索結果に表示されますが、「太郎」では検索結果に出てこないというところです。

まとめ

いかがだったでしょうか?表示名一つで考えることが意外と多いことがわかっていただけたかと思います。日本語はローカル言語でありますので、グローバルに展開する際には障壁になる場合もあります。今後会社がどういう方向に展開していくのかをよく考えて設計していただくと良いかと思います。一度日本語で設定したものを突然英語表記に変更すると社内から反発も来ることでしょう。あとになってあの時ちゃんと設計しておけばよかったとならないようにベンダーさんとよく相談して進めてくださいね。それでは、本記事が皆様の導入検討・設計の一助となりましたら幸いです。