Outlook アドインで共有フォルダーと共有メールボックスのシナリオを実装する
この記事では、Office JavaScript API でサポートされているアクセス許可など、共有フォルダー (代理人アクセスとも呼ばれます) と共有メールボックスシナリオを Outlook アドインに実装する方法について説明します。
注:
共有フォルダーのサポートは 要件セット 1.8 で導入されましたが、共有メールボックスのサポートは 要件セット 1.13 で導入されました。 これらの機能のクライアント サポートについては、「 サポートされているクライアントとプラットフォーム」を参照してください。
サポートされているクライアントとプラットフォーム
次の表は、この機能でサポートされているクライアントとサーバーの組み合わせを示しています。該当する場合は、最低限必要な累積的な更新プログラムも含まれます。 除外された組み合わせはサポートされていません。
クライアント | Exchange Online | Exchange 2019 オンプレミス (累積的な更新プログラム 1 以降) |
Exchange 2016 オンプレミス (累積的な更新プログラム 6 以降) |
---|---|---|---|
Web ブラウザー (最新の Outlook UI) | サポート | × | 該当なし |
Web ブラウザー (従来の Outlook UI) | 該当なし | 該当なし | 該当なし |
新しい Outlook on Windows | サポート | × | 該当なし |
Windows (クラシック) 共有フォルダー: バージョン 1910 (ビルド 12130.20272) 以降 共有メールボックス: バージョン 2304 (ビルド 16327.20248) 以降 |
サポート | サポート* | サポート* |
Mac バージョン 16.47 以降 |
サポート | サポートされている | サポート |
注:
* オンプレミスの Exchange 環境でのこの機能のサポートは、従来の Outlook on Windows バージョン 2206 (ビルド 15330.20000) から現在のチャネルとバージョン 2207 (ビルド 15427.20000) の月次エンタープライズ チャネルでサポートされています。
サポートされているセットアップ
次のセクションでは、共有メールボックスと共有フォルダーでサポートされる構成について説明します。 機能 API は、他の構成では期待どおりに機能しない可能性があります。 構成方法を学習するプラットフォームを選択します。
共有フォルダー
メールボックスの所有者は、最初に代理人へのアクセスを提供する必要があります。
メールボックス所有者に代わって会議と会議の応答を管理するためのアクセス権を提供するには、Outlook on the webの予定表の委任に関するページを参照してください。
メールボックス所有者に代わって受信トレイと予定表の両方を管理するためのアクセスを提供するには、次のいずれかのオプションを使用してアクセスを構成する必要があります。
メールボックスの所有者は、従来の Outlook on Windows を使用してアクセスを構成できます。 詳細については、「 他のユーザーにメールと予定表の管理を許可する」を参照してください。
管理者は、Microsoft 365 管理センターを使用してアクセスを構成できます。 詳細については、「別の Microsoft 365 ユーザーにメールボックスのアクセス許可を付与する」を参照してください。
管理者は、Exchange 管理センターを通じてアクセスを構成できます。 詳細については、「 受信者のアクセス許可を管理する」を参照してください。
アクセスが提供されたら、代理人は、記事「他のユーザーのメールボックスにアクセスする」の「Outlook Web Appのフォルダー リストに別のユーザーのメールボックスを追加する」セクションに記載されている手順に従う必要があります。
共有メールボックス
共有メールボックスを使用すると、ユーザーのグループは、共有メール アドレスを使用してメッセージや会議出席依頼を簡単に監視および送信できます。
Outlook on the webでは、共有メールボックスは、ユーザーのプライマリ メールボックスと同じパネル、または別のブラウザー タブまたはウィンドウで開くことができます。 ガイダンスについては、「Outlook on the webで共有メールボックスを開いて使用する」を参照してください。
注:
Outlook on the webで、[別のメールボックスを開く] オプションを使用して別のブラウザー タブまたはウィンドウで共有メールボックスを開くと、メールボックスからアドインにアクセスするときに問題が発生する可能性があります。 代わりに、プライマリ メールボックスと同じパネルでメールボックスを開くお勧めします。 これにより、アドインが共有メールボックスで期待どおりに動作します。
[別のメールボックスを 開く ] オプションを使用して共有メールボックスを開く場合は、プライマリ ユーザーと共有メールボックスの両方にアドインを展開することをお勧めします。
新しい Outlook on Windows では、共有メールボックスがフォルダー ウィンドウの [ 自分と共有 ] セクションに追加されます。 ガイダンスについては、「 Outlook で共有メールボックスを開いて使用する」を参照してください。
アドインが実行する場所と一般的にアクティブ化しない場所の詳細については、「Outlook アドインの概要」ページの「 アドインで使用できるメールボックスアイテム 」セクションを参照してください。
マニフェストを構成する
アドインに共有フォルダーと共有メールボックスのシナリオを実装するには、まずマニフェストで機能のサポートを構成する必要があります。 マークアップは、アドインで使用するマニフェストの種類によって異なります。
"authorization.permissions.resourceSpecific" 配列にオブジェクトを追加し、その "name" プロパティを "Mailbox.SharedFolder" に設定します。
"authorization": {
"permissions": {
"resourceSpecific": [
...
{
"name": "Mailbox.SharedFolder",
"type": "Delegated"
},
]
}
},
フォルダーまたはメールボックスが共有されているかどうかを識別する
共有フォルダーまたは共有メールボックスで操作を実行するには、まず、現在のフォルダーまたはメールボックスが共有されているかどうかを特定する必要があります。 これを確認するには、作成モードまたは読み取りモードでメッセージまたは予定に 対して Office.context.mailbox.item.getSharedPropertiesAsync を呼び出します。 アイテムが共有フォルダーまたは共有メールボックス内にある場合、メソッドは、ユーザーのアクセス許可、所有者のメール アドレス、REST API のベース URL、およびターゲット メールボックスの場所を提供する SharedProperties オブジェクトを返します。
次の例では、 getSharedPropertiesAsync
メソッドを呼び出して、メールボックスの所有者と、代理人または共有メールボックス ユーザーのアクセス許可を識別します。
Office.context.mailbox.item.getSharedPropertiesAsync((result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error("The current folder or mailbox isn't shared.");
return;
}
const sharedProperties = result.value;
console.log(`Owner: ${sharedProperties.owner}`);
console.log(`Permissions: ${sharedProperties.delegatePermissions} `);
});
サポートされているアクセス許可
次の表では、代理人と共有メールボックス ユーザー getSharedPropertiesAsync
サポートするアクセス許可について説明します。
アクセス許可 | 値 | 説明 |
---|---|---|
読み取り | 1 (000001) | 項目を読み取ることができます。 |
書き込み | 2 (000010) | アイテムを作成できます。 |
DeleteOwn | 4 (000100) | 作成したアイテムのみを削除できます。 |
DeleteAll | 8 (001000) | 任意のアイテムを削除できます。 |
EditOwn | 16 (010000) | 作成したアイテムのみを編集できます。 |
EditAll | 32 (100000) | 任意のアイテムを編集できます。 |
注:
現在、API は既存のアクセス許可の取得をサポートしていますが、アクセス許可の設定はサポートしていません。
delegatePermissions プロパティによって返される DelegatePermissions 列挙型は、アクセス許可を示すビットマスクを使用して実装されます。 ビットマスク内の各位置は特定のアクセス許可を表し、 1
に設定されている場合、ユーザーはそれぞれのアクセス許可を持ちます。 たとえば、右側の 2 番目のビットが 1
されている場合、ユーザーは 書き込み アクセス許可を持ちます。
代理人または共有メールボックス ユーザーとして操作を実行する
現在のメール アイテムが共有フォルダーまたは共有メールボックス内にあることを確認したら、アドインは共有環境内のアイテムに対して必要な操作を実行できます。 共有コンテキストでアイテムに対して操作を実行するには、まずマニフェストでアドインのアクセス許可を構成する必要があります。 次に、Microsoft Graph を使用して操作を完了します。
注:
Exchange Web Services (EWS) は、共有フォルダーと共有メールボックスのシナリオではサポートされていません。
アドインのアクセス許可を構成する
Microsoft Graph サービスを使用するには、アドインのマニフェストでメールボックスの 読み取り/書き込み アクセス許可を構成する必要があります。 マークアップは、アドインで使用するマニフェストの種類によって異なります。
- Microsoft 365 の統合マニフェスト: "authorization.permissions.resourceSpecific" 配列内のオブジェクトの "name" プロパティを "Mailbox.ReadWrite.User" に設定します。
- アドインのみのマニフェスト: Permissions 要素を ReadWriteMailbox に設定します。
Microsoft Graph の使用
共有フォルダーと共有メールボックスのシナリオを実装するには、Microsoft Graph を使用して追加のメールボックス情報とリソースにアクセスします。 たとえば、Microsoft Graph を使用して、ユーザーが代理人アクセス権を持つメールボックス内 のメッセージに添付されている Outlook メッセージの内容を取得 できます。 Microsoft Graph の使用方法のガイダンスについては、「Microsoft Graph および Microsoft Graph のOutlook メール API の概要」を参照してください。
ヒント
アドインから Microsoft Graph API にアクセスするには、入れ子になったアプリ認証 (NAA) MSAL.js 使用します。 詳細については、「 入れ子になったアプリ認証 (プレビュー)を使用して Office アドインで SSO を有効にする」を参照してください。
制限事項
アドインのシナリオによっては、共有フォルダーや共有メールボックスの状況を処理する際に考慮すべきいくつかの制限事項があります。
メッセージ Compose モード
メッセージ Compose モードでは、getSharedPropertiesAsync は、次の条件が満たされていない限り、Outlook on the webまたは Windows (新規およびクラシック) ではサポートされません。
アクセス/共有フォルダーを委任する
- メールボックスの所有者がメッセージを開始します。 これは、新しいメッセージ、返信、転送のいずれかです。
- メッセージを保存し、独自の Drafts フォルダーからデリゲートと共有されているフォルダーに移動します。
- デリゲートは、共有フォルダーから下書きを開き、作成を続行します。
共有メールボックス (従来の Outlook on Windows にのみ適用)
- 共有メールボックス ユーザーがメッセージを開始します。 これは、新しいメッセージ、返信、転送のいずれかです。
- メッセージを保存し、独自の 下書き フォルダーから共有メールボックス内のフォルダーに移動します。
- 別の共有メールボックス ユーザーが共有メールボックスから下書きを開き、作成を続行します。
これらの条件が満たされると、メッセージは共有コンテキストで使用できるようになり、これらの共有シナリオをサポートするアドインはアイテムの共有プロパティを取得できます。 メッセージが送信されると、通常は送信者の個人用メールボックスの [送信済みアイテム] フォルダーに表示されます。
アドレス一覧に表示されないユーザーまたは共有メールボックス
グローバル アドレス一覧 (GAL) などのアドレス一覧からユーザーまたは共有メールボックス アドレスを管理者が隠した場合、メールボックス レポートで開かれた影響を受けるメール アイテムは null として Office.context.mailbox.item
。 たとえば、ユーザーが GAL から非表示になっている共有メールボックス内のメール アイテムを開いた場合、そのメール アイテムを表 Office.context.mailbox.item
null になります。
共有フォルダー クライアント間で同期する
所有者のメールボックスに対する代理人の更新は、通常、メールボックス間で直ちに同期されます。 ただし、Microsoft Graph 操作を使用してアイテムに拡張プロパティを設定した場合、そのような変更の同期に時間がかかる可能性があります。遅延を回避するために、代わりに CustomProperties オブジェクトと関連 API を使用することをお勧めします。 詳細については、「 Outlook アドインでメタデータを取得して設定する」の「メールボックス内のアイテムごとのカスタム データ: カスタム プロパティ」セクションを参照してください。
関連項目
Office Add-ins