Microsoft Graph API を使用し、Client Credentials 認証(アプリケーション権限)で Outlook メールを取得する手順を説明します。
Azure での基本設定(アプリ登録・シークレット発行)がお済みでない場合は、まず以下のガイドの手順に沿って準備を整えてください。
Client Credentialsによる接続情報の作成
※リンク先の「アプリケーションの登録」から「クライアント シークレットの発行」までをあらかじめ済ませてください。
準備が整いましたら、本ページにて Outlook 専用の権限設定 を行います。
1. Outlook メールの読み取り権限の設定(Microsoft Azure)
リンク先で作成したアプリケーションに対し、メールを読み取るための権限を追加します。
1.1. API 権限の追加
管理画面の [API のアクセス許可] > [アクセス許可の追加] > [Microsoft Graph] を選択します。
アクセス許可の種類で [アプリケーションの許可] を選択します。
-
Mail.Readを検索してチェックを入れ、[アクセス許可の追加] をクリックします。
1.2. 管理者の同意
「API のアクセス許可」画面上部の [<テナント名>に管理者の同意を与えます] をクリックします。
-
ステータスが「同意済み」になれば、Azure 側の設定は完了です。
2. Reckoner 接続情報の作成
Reckoner の接続情報画面で「Microsoft365」を選択し、以下の情報を入力します。
認証方法:
client_credentialsAzure クライアント ID:アプリの「アプリケーション (クライアント) ID」
Azure クライアント シークレット:発行したシークレットの「値」
Azure テナント ID:アプリの「ディレクトリ (テナント) ID」
3. ワークフローの設定(APIの呼び出し)
3.1. 構成の全体概要
接続情報の作成後、以下のタスクを組み合わせてワークフローを構築します。HTTP(第2世代)タスクで API を呼び出し、取得した JSON データを JSON展開タスクで整形する流れとなります。
HTTP(第2世代)タスク: API を実行し、メールデータを JSON 形式で受信。
JSON展開タスク: 受信データから「件名」や「本文」など必要な項目を抽出。
3.2. HTTP(第2世代)タスクの設定
接続情報タイプ:Microsoft365
接続情報:手順2で作成した接続情報の名前を選択
URL:
https://graph.microsoft.com/v1.0/users/{UPN または メールアドレス}/mailFolders/Inbox/messages
※この認証方式では/me/は使用できません。対象の UPN またはメールアドレスを指定してください。クエリパラメーター:任意
※画像例のように$filter(日付絞り込み)や$orderby(並び替え)を設定することで、必要なメールのみを効率的に取得できます。メソッド:
GET受信データフォーマット:JSON
JSONPath:
$.value.*
※メールデータ本体が格納されている value 配列内の各要素を取り出します。出力フィールド名:
response出力フィールドのデータ型:JSON
送信データフォーマット:なし
3.3. JSON展開タスクの設定
response フィールドから、以下のキーなどを展開して利用します。
subject(件名)sentDateTime(送信日時)bodyPreview(本文プレビュー)