【誤送信対策】Exchange Onlineの「メールの送信の取り消し」について一括で設定する
2021-12-18
azblob://2022/11/11/eyecatch/2021-12-18-exchange-online-mail-send-undo-interval-000.jpg

この記事はFIXER Advent Calendar 2021(18日目)の記事です。

メール送信取り消し機能の一括設定について、「メール 送信取り消し Microsoft 365 Outlook Exchange Online」などの単語で検索しても有意義な情報が見つからなかったため、自分で記事にしてみました。

INTRODUCTION: あなたの環境は誤送信対策、実施していますか?

Microsoft 365のスイートに含まれるExchange Onlineには様々な誤送信対策が用意されています。

今回はその中のメールの「送信の取り消し機能」についてご紹介と一括設定の方法をまとめます。

  


WHO: 想定読者

  • Outlook on the Webの送信の取り消し機能を理解・利用したいユーザー
  • Exchange Onlineを運用を簡略化・コード化したいシステム管理者

  


WHAT: 「送信の取り消し(Undo Sending)機能」について

メールの送信取り消し(Undo Sending)機能 とはこのような機能です。

  1. ユーザーがメールを作成
  2. 送信ボタンをクリック
  3. 「元に戻す」ボタンが表示される(この機能)
    1. 一定期間の間に「元に戻す」ボタンを押す
      メールが送信されない
    2. 一定期間の間に「元に戻す」ボタンを押さない
      通常通りメールが送信される

 メール送信後、このようなUIが一定期間画面に表示される 

「元に戻す」ボタンを押すとメールの送信はキャンセルされ、下書き状態に戻ります。

一定時間の間「元に戻す」ボタンを押さなかった場合は通常通りメールが送信されます。

すでに送信済みのメールについてはこの機能の対象にはなりません。

この設定はメールボックス単位で設定されるもので、テナント単位(組織単位)では設定できないものとなります。

この機能を活用することで、もし送信後に間違った内容だと気付いた場合の救いの一手を作ることができます。

  


HOW: ユーザーとして設定する方法

ユーザーとして設定を変更する場合は、まずOutlook on the Webの右上の歯車(設定)をクリックして設定メニューを画面右側に表示します。

次に「Outlookのすべての設定を表示」リンクをクリックします。

設定ウィンドウが開いたら「メール>作成と返信>送信の取り消し」と移動すると設定箇所に辿り着きます。

※該当する設定画面へ直接遷移できるリンクもあります。

 Outlook on the Webの詳細設定画面 

設定は0秒、5秒、10秒まで設定できます。

0秒を設定した場合は送信の取り消しの機能は動作せず(元に戻すボタンが表示されず)、通常通りメールが送信される挙動になります。

  


HOW: 管理者として設定する方法

この章が記事の本題です。

メールの送信取り消し機能は管理側でも設定することが可能です。

事前にExchange Online PowerShell V2モジュールをインストールしておきましょう。

  


個別のメールボックスを対象にして設定する方法

個別に設定する場合は下記のシンプル設定で充分です。

# Exchange Onlineの管理権限を持ったユーザーでログイン

Connect-ExchangeOnline

Set-MailboxMessageConfiguration -Identity <設定するユーザーUPN> -MailSendUndoInterval <設定する値 (秒)>

設定したいけど自分で設定できない、遠隔サポートしたい場合などに利用します。


複数のメールボックスを対象にして一括設定する方法

未設定(0秒設定)のメールボックスを探して、一括でメール送信の取り消し間隔を10秒に設定したい場合は下記の例を参考に設定してください。

# Exchange Onlineの管理権限を持ったユーザーでログイン
Connect-ExchangeOnline

# メールボックス一覧(ユーザー)を取得
$mailboxList = Get-Mailbox -ResultSize unlimited |Where-Object{$_.RecipientTypeDetails -eq "UserMailbox"};

Foreach($i in $mailboxList){
    $mailboxConfig = Get-MailboxMessageConfiguration -Identity $i.UserPrincipalName;
    # メールの取り消し設定が0秒のメールボックスに対して10秒になるよう更新
    if($mailboxConfig.MailSendUndoInterval -eq 0){
        Set-MailboxMessageConfiguration -Identity $i.UserPrincipalName -MailSendUndoInterval 10;
    }
}

NOTE: PowerShellスクリプトについて補足

メールボックス一覧を取得する方法はいろいろあると思いますが、今回はRecipientTypeDetailsのUserMailboxを活用してみました。

上記スクリプトは1件ずつ値を確認していく都合上、処理時間は結構長めです。

ユーザー件数が一定数以上の場合は対象のユーザーリストは分割したほうが良いです。

(参考値として200件で約3分かかります)

  


NOTE: メール送信の取り消し可能時間について

メール送信の取り消し可能時間(MailSendUndoInterval)は設定値として0秒、5秒、10秒がサポートされています。(GUIで設定できる値と同じです)

※昔からOffice365を利用している場合、10秒より大きい値(30秒等)が設定されているメールボックスが存在する場合もあります。

10秒より大きい値を設定した場合、Microsoftのサポート対象外となりますので、 一括設定を機に運用を見直すのも良いでしょう。

余談ですがOutlookのデスクトップクライアントで仕分けルールを作れば、送信取り消しまでのタイミングを10秒より大きい値の設定(1分など)に変更可能です。

記事の趣旨と異なりますし、検索するとゴロゴロヒットしますのでこの記事では割愛します。

  


SUMMARY: まとめ

誤送信はメールを使う運用では目を背けられない課題の一つです。

様々な対策はありますが、まずは最初のステップとして「メールの送信の取り消し機能」から導入してみてはいかがでしょうか。

この設定と運用が確立してから、Exchange Onlineのメールフロールールの検討や各種アドイン・SaaSの導入について検討してみるのも良いかと思います。

もちろんメールを送る文化をやめて、SlackやTeamsをフル活用するのも一つの選択肢です!

ちなみに今回利用したSet-MailboxMessageConfigurationでコンフィグできるパラメーターはExchange Onlineの痒い所に手が届く設定だらけです。

送信の取り消し機能の設定だけではなく、別の項目も一緒に一括設定してみると幸せになるかもしれません。

Set-MailboxMessageConfiguration

https://docs.microsoft.com/ja-jp/powershell/module/exchange/set-mailboxmessageconfiguration?view=exchange-ps

おしまい