# EMQXエージェントをOutlookに接続する

Outlookコネクターを使用すると、EMQXエージェントがOutlookのメール、メールボックスフォルダー、添付ファイル、連絡先、カレンダーイベントと連携できます。認可されたMicrosoftアカウントを通じてメールやカレンダーのワークフローを自動化するために利用します。

## 一般的なユースケース

- 運用用メールボックスを検索し、最近のインシデントメッセージを要約する。
- エージェントが異常状態を検知した後にメールを作成または送信する。
- メンテナンスカレンダーイベントを作成または更新する。
- 添付ファイルを読み込み、その内容をワークフローで利用する。

チャットプロンプトの例：

```text
operations-outlookコネクターを使って、過去24時間のデバイス障害に関する未読メッセージを検索し、要約を作成してください。メールは送信しないでください。
```

## 前提条件

コネクターを追加する前に、以下を準備してください：

- Outlookにアクセス可能なMicrosoftアカウント
- 必要なメール、連絡先、カレンダー操作を認可する権限
- ワークフローで必要となる共有メールボックス、カレンダー、連絡先フォルダー、添付ファイルへのアクセス権

## Outlookコネクターの追加手順

1. 左側のナビゲーションメニューで **Connectors** をクリックします。
2. **Available** タブで **Outlook** を見つけて **Add** をクリックします。
3. 説明的なコネクター名を入力します。
4. **Confirm** をクリックすると、Microsoft認証フローがダイアログで開きます。
5. 接続するMicrosoftアカウントを選択するか、**Use another account** を選択します。
6. 認証ダイアログが閉じてEMQXエージェントに戻るまで待ちます。
7. **Added** タブでコネクターのステータスが **Authorized** になっていることを確認します。

<!-- TODO: Microsoft OAuthスコープ、テナント同意要件、共有メールボックス対応、メールやカレンダーの書き込み操作に対する個別承認の有無を確認する。 -->

## 対応ツール

### カレンダー

| ツール | アクセス | 説明 |
|---|---|---|
| `OUTLOOK_ACCEPT_EVENT` | 書き込み | カレンダーイベントの招待を承諾します。 |
| `OUTLOOK_CANCEL_EVENT` | 破壊的 | カレンダーイベントをキャンセルします。 |
| `OUTLOOK_GET_CALENDAR_VIEW` | 読み取り | 指定期間内に発生または重複するイベントを取得します。 |
| `OUTLOOK_LIST_EVENTS` | 読み取り | カレンダーイベントを一覧表示します。 |
| `OUTLOOK_LIST_USER_CALENDAR_VIEW` | 読み取り | ユーザーのカレンダー内の指定期間のイベントを取得します。 |
| `OUTLOOK_SEARCH_EVENTS` | 読み取り | カレンダーイベントを検索します。 |
| `OUTLOOK_CALENDAR_CREATE_EVENT` | 書き込み | デフォルトカレンダーにイベントを作成します。 |
| `OUTLOOK_CREATE_CALENDAR_EVENT_IN_CALENDAR` | 書き込み | 選択したカレンダーにイベントを作成します。 |
| `OUTLOOK_UPDATE_CALENDAR_EVENT` | 書き込み | デフォルトカレンダーのイベントを更新します。 |
| `OUTLOOK_UPDATE_CALENDAR_EVENT_IN_CALENDAR` | 書き込み | 選択したカレンダーのイベントを更新します。 |

### メール送信と下書き管理

| ツール | アクセス | 説明 |
|---|---|---|
| `OUTLOOK_CREATE_DRAFT` | 書き込み | 宛先、件名、本文、添付ファイル付きのメール下書きを作成します。 |
| `OUTLOOK_CREATE_DRAFT_REPLY` | 書き込み | メッセージへの返信用下書きを作成します。 |
| `OUTLOOK_REPLY_EMAIL` | 書き込み | メールに返信します。 |
| `OUTLOOK_SEND_DRAFT` | 書き込み | メール下書きを送信します。 |
| `OUTLOOK_SEND_EMAIL` | 書き込み | Outlook経由でメールを送信します。 |

### メールボックスフォルダー

| ツール | アクセス | 説明 |
|---|---|---|
| `OUTLOOK_GET_MAIL_FOLDER` | 読み取り | メールボックスフォルダーを取得します。 |
| `OUTLOOK_GET_MAIL_FOLDER_MESSAGE` | 読み取り | 選択したメールボックスフォルダーからメッセージを取得します。 |
| `OUTLOOK_LIST_MAIL_FOLDER_MESSAGES` | 読み取り | メールボックスフォルダー内のメッセージを一覧表示します。 |
| `OUTLOOK_LIST_MAIL_FOLDERS` | 読み取り | メールボックスフォルダーを一覧表示します。 |

### メールの読み取りと管理

| ツール | アクセス | 説明 |
|---|---|---|
| `OUTLOOK_MOVE_MESSAGE` | 書き込み | メッセージを別のメールボックスフォルダーに移動します。 |
| `OUTLOOK_UPDATE_EMAIL` | 書き込み | メッセージのプロパティを更新します。 |
| `OUTLOOK_GET_ME_MESSAGE_MIME_CONTENT` | 読み取り | メッセージのMIMEコンテンツを取得します。 |
| `OUTLOOK_GET_MESSAGE` | 読み取り | メッセージIDでメッセージを取得します。 |
| `OUTLOOK_LIST_MESSAGES` | 読み取り | メールボックス内のメッセージを一覧表示します。 |
| `OUTLOOK_LIST_SENT_ITEMS_MESSAGES` | 読み取り | 送信済みメッセージを一覧表示します。 |
| `OUTLOOK_QUERY_EMAILS` | 読み取り | OData条件を使ってフォルダー内のメッセージをクエリします。 |
| `OUTLOOK_SEARCH_MESSAGES` | 読み取り | KQLを使ってメールボックスを検索します。 |

### 添付ファイル

| ツール | アクセス | 説明 |
|---|---|---|
| `OUTLOOK_DOWNLOAD_OUTLOOK_ATTACHMENT` | 読み取り | メールの添付ファイルをダウンロードします。 |
| `OUTLOOK_GET_USER_MESSAGES_ATTACHMENTS` | 読み取り | メッセージの添付ファイル情報を取得します。 |

### 連絡先とユーザー

| ツール | アクセス | 説明 |
|---|---|---|
| `OUTLOOK_CREATE_CONTACT` | 書き込み | Outlookの連絡先フォルダーに連絡先を作成します。 |
| `OUTLOOK_LIST_USER_CONTACTS` | 読み取り | ユーザーの連絡先を一覧表示します。 |
| `OUTLOOK_UPDATE_CONTACT` | 書き込み | 連絡先を更新します。 |
| `OUTLOOK_GET_PROFILE` | 読み取り | Outlookユーザープロファイルを取得します。 |

::: warning 重要なお知らせ
メール送信および返信ツールは外部と通信します。カレンダーのキャンセルおよび更新ツールは参加者のスケジュールを変更します。メッセージの移動および更新ツールはメールボックスの状態を変更します。
:::

## チャットでのコネクター利用方法

1. チャット入力欄でコネクターアイコンをクリックします。
2. 認可済みの **Outlook** コネクターを選択します。
3. プロンプト内でエージェントが使用する外部リソースと操作を指定します。
4. 生成されたエージェント定義を確認し、必要なツールのみが含まれていることを確認します。

## 権限とデータアクセス

コネクターは認可されたMicrosoftアカウントを使用します。Microsoft 365テナントのポリシー、メールボックス権限、カレンダー共有、連絡先フォルダーアクセスが利用可能なリソースと操作を決定します。

チャットプロンプトやエージェント指示に外部サービスの認証情報やアクセストークンを含めないでください。

## 制限事項

- Microsoft Graph APIのクォータおよびMicrosoft 365テナントのポリシーが適用されます。
- 共有メールボックスおよび委任されたカレンダーアクセスには管理者設定が必要な場合があります。
- メッセージ検索の挙動はODataクエリとKQL検索で異なります。

<!-- TODO: サービス固有の結果サイズ制限、ファイル制限、APIレート制限、プラン制限、非対応リソースタイプを確認する。 -->

## トラブルシューティング

| 症状 | 対処方法 |
|---|---|
| コネクターが **Unauthorized** のままになる。 | 認証を再試行し、接続するMicrosoftアカウントを選択してください。 |
| ツールが権限エラーを返す。 | 認可されたアカウントの対象リソースおよび操作へのアクセス権を確認してください。 |
| 必要なツールが利用できない。 | ツールがこのコネクターでサポートおよび承認されているか確認し、チャットで再度コネクターを選択してください。 |
| リクエストが断続的に拒否される。 | 外部サービスのステータス、APIクォータ、レート制限、アカウントプランを確認してください。 |

## 関連リンク

- [Connectors](../connectors.md)
- [Start a Chat](../chats.md)
- [Manage Agents](../agents.md)
