物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Office 365 (Microsoft 365) のWebメールで常時BCC拡張機能を自作する

Office 365 (Microsoft 365) や、 OutlookのWebメールで、常に特定のメールアドレスにBCCしたい (いわゆる Always BCC) 需要があった。

Chromeの拡張機能を使うと簡単に実装できそうなのでやってみた。Chromeの拡張機能の作り方は以下のサイトを参考にしてほしい。

qiita.com

ここの manifest.jsoncontent-script.js の書き方だけ紹介する。

manifest.json の書き方

Office 365用とOutlookのWebメールのアドレスを設定する。

{
  "manifest_version": 3,
  "name": "Always BCC to Office 365 web mail",
  "version": "1.0.0",
  "description": "マイクロソフトのWebメールでBCCに常にメールアドレスを設定する拡張機能",
  "content_scripts": [{
    "matches": ["https://outlook.office.com/mail/*","https://outlook.live.com/mail/*"],
    "run_at": "document_end",
    "all_frames": true,
    "js": ["content-script.js"]
  }]
}

content-script.js の書き方

Office365 または OutlookのWebメールのBCCのクラスは ODMpkなので、それを取得してその中の EditorClass クラスを取得してテキストを bcc@address.address に書き換える。メールアドレスは各自のアドレスに書き換えて欲しい。

いちおう動くことは確認したが、筆者のJavaScriptの経験が浅いので作法が合ってるか不安である。

'use strict';

const countWords = () => {
    const address = document.querySelectorAll('div.ODMpk');
    if (address.length == 1) {
        let content = address[0].querySelectorAll('div.EditorClass');
        if (content.length == 1) {
            if (content[0].innerText == "") {
                content[0].innerText = "bcc@address.address";
                console.log("OK");
            }
        }
    }
};

// ページ読み込み後に実行するよう設定
window.addEventListener('load', () => countWords(), false);
// 入力があったら実行するよう設定
window.addEventListener('input', () => countWords());

この2つのファイルを作成し、同じディレクトリに保存しておく。

Chromeから chrome://extensions/ を開き、デベロッパーモードをONにする。「パッケージ化されていない拡張機能を読み込む」から上記2つのファイルのあるディレクトリを指定すると、拡張機能として読み込まれる。

拡張機能を読み込み後、Webメールを開き、どこかのテキストボックスへ入力すると、BCCが空の場合は content-script.js で設定したメールアドレスが自動的に入力される。

BCCの欄が自動で表示されない場合は、メールの「作成と返信」設定からメッセージ形式の「BCCを常に表示する」にチェックを入れておく。