C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
掲示板トップ
C# と VB.NET のサンプル
新規作成
利用方法/規約
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
■103909
/ 2階層)
c#で outlook 受信トレイ監視が出きなくなった
□投稿者/ 魔界の仮面弁士
(3907回)-(2026/01/16(Fri) 16:19:56)
■
No103906
(魔界の仮面弁士) に追記
>> Outlookの受信トレイを監視する為の監視アプリをC#で作成しております。
(対応策1) 新しい Outlook へ移行せず、従来版 Outlook を維持して COM 操作を継続する
(対応策2) COM ベースの捜査から、新しい API 操作に切り替える
>>メニューに
>>Outlookの他に
>>Outlook(new)が出現したことも関係するのかもしれません。
> "Outlook (new)" の実体は WebView2 ベースと聞いていますが、
> COM オートメーションをどこまでサポートし続けているかは不明です。
新しい Outlook は Web 技術ベースで設計されているため、
従来の Outlook が提供していた COM Automation(Outlook Object Model)は
新しい Outlook では提供されていません(COM add-ins も非サポート)。
下記でも「Microsoft が新しい Outlook から Outlook Desktop COM API を削除した」とあります。
(新しい Outlook は Web 技術ベースで設計されており、MAPI の追加サポートも計画されていません)
https://docs.uipath.com/ja/activities/other/latest/productivity/new-outlook-impacts-outlook-desktop-activities
new Outlook for Windows の技術情報について、下記を参照してください。
https://learn.microsoft.com/ja-jp/microsoft-365-apps/outlook/overview-new-outlook-windows?WT.mc_id=DT-MVP-8907
以上のように、新しい Outlook は従来の COM/MAPI ベースの拡張を前提としていないため、
今後はクラウド API 主体の開発が必要になってきます。
また、UIAutomation や Selenium を用いる手法を見かけることもありますが、
新しい Outlook の UI は WebView2 内で動的に構築されるため、
要素構造が安定せず、実用的な自動化は困難です。
過去には、"Outlook REST API" という技術もあったのですが、こちらは
v1.0 が 2019年11月に、v2.0 が 2024年3月にそれぞれ廃止されており、
現在は "Microsoft Graph API" が利用されます。
・MAPI → それ自体に変更は無いが、クラウド版からは利用不可
・Outlook REST API v1.0 → 廃止(2019/11)
・Outlook REST API v2.0 → 廃止(2024/3)
・Exchange Web Services → 非推奨
・Azure AD Graph API → 廃止(2025/6)
・Microsoft Graph API → すべての新機能の中心
>> OutookNameSpace = (Outlook._NameSpace)OutlookApp.GetNamespace("MAPI"); <=ここで以下のエラーが出ます。
現在のところ、新しい Outlook は MAPI をサポートしていないようです。
https://support.microsoft.com/ja-jp/office/a3f77cbb-2476-4d09-b051-f38a4afe9e23?WT.mc_id=DT-MVP-8907
「この問題は、新しい Outlook が現在 MAPI 統合をサポートしていないために発生します。」
「新しい Outlook が MAPI 統合のサポートを追加するまでは、MAPI アプリケーションから送信される電子メールを管理するために、従来の Outlook をインストールして構成できます。」
Exchange Online についてみてみると、
・MAPI over HTTP は内部実装としては残されているが、外部 API としては推奨されない
・新しい Outlook は Graph API を前提に設計
という流れになっています。
先に述べた通り、新しい Outlook ではクラウド API(Microsoft Graph)を中心に設計されているため、
COM を用いた MAPI ベースの監視プログラムではなく、Microsoft Graph API ベースの監視が要求されます。
Microsoft Graph API による監視方法としては、
・Delta Query(差分取得)
・Webhook(通知サブスクリプション)
があります。
Delta Query は「定期的に差分を取りに行くポーリング方式」で、
Webhook は「サーバー側から通知を受け取るプッシュ通知方式」です。
Webhook の場合は、受信用のエンドポイントの準備(証明書やドメインなど)が必要で
実装コストが高いため、今回の要件なら Delta Query の方が良いかもしれません。
Microsoft Graph API は OAuth 2.0 (Azure AD) / OpenID Connect による認証が必須のため、
どのアプリがどのメールボックスにアクセスするかを Azure AD に登録して
・クライアント ID
・テナント ID
・シークレットまたは認証フロー
を準備しておく必要があります。
C# で実装する場合は "Microsoft.Graph" (と "Microsoft.Identity.Client") を NuGet します。
PowerShell で接続する場合は Microsoft Graph PowerShell SDK を用います。
Learn > Microsoft Graph > Outlook メール API の概要
https://learn.microsoft.com/ja-jp/graph/outlook-mail-concept-overview?WT.mc_id=DT-MVP-8907
Microsoft 365 > Microsoft Graph > Changelog
https://developer.microsoft.com/en-us/graph/changelog?WT.mc_id=DT-MVP-8907
note > なぜMicrosoft Graphは沼なのか
https://note.com/japan_d2/n/n0c6b1ba5a849
編集キー/
編集
前の記事
(元になった記事)
次の記事
(この記事の返信)
←Re[1]: c#で outlook 受信トレイ監視が出きなくなった
/魔界の仮面弁士
返信無し
上記関連ツリー
c#で outlook 受信トレイ監視が出きなくなった
/ いとこんにゃく
(25/09/08(Mon) 10:56)
#103858
├
Re[1]: c#で outlook 受信トレイ監視が出きなくなった
/ ゆーち
(26/01/13(Tue) 12:34)
#103901
├
Re[1]: c#で outlook 受信トレイ監視が出きなくなった
/ とくま
(26/01/13(Tue) 14:02)
#103902
│└
Re[2]: c#で outlook 受信トレイ監視が出きなくなった
/ とくま
(26/01/15(Thu) 17:19)
#103908
└
Re[1]: c#で outlook 受信トレイ監視が出きなくなった
/ 魔界の仮面弁士
(26/01/14(Wed) 09:02)
#103906
└
c#で outlook 受信トレイ監視が出きなくなった
/ 魔界の仮面弁士
(26/01/16(Fri) 16:19)
#103909
←Now
上記ツリーを一括表示
/
上記ツリーをトピック表示
上記の記事へ返信
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No103909 (魔界の仮面弁士 さん) に返信 > ■No103906 (魔界の仮面弁士) に追記 > >> Outlookの受信トレイを監視する為の監視アプリをC#で作成しております。 > > (対応策1) 新しい Outlook へ移行せず、従来版 Outlook を維持して COM 操作を継続する > > (対応策2) COM ベースの捜査から、新しい API 操作に切り替える > > > >>メニューに > >>Outlookの他に > >>Outlook(new)が出現したことも関係するのかもしれません。 >>"Outlook (new)" の実体は WebView2 ベースと聞いていますが、 >>COM オートメーションをどこまでサポートし続けているかは不明です。 > > 新しい Outlook は Web 技術ベースで設計されているため、 > 従来の Outlook が提供していた COM Automation(Outlook Object Model)は > 新しい Outlook では提供されていません(COM add-ins も非サポート)。 > > 下記でも「Microsoft が新しい Outlook から Outlook Desktop COM API を削除した」とあります。 > (新しい Outlook は Web 技術ベースで設計されており、MAPI の追加サポートも計画されていません) > https://docs.uipath.com/ja/activities/other/latest/productivity/new-outlook-impacts-outlook-desktop-activities > > new Outlook for Windows の技術情報について、下記を参照してください。 > https://learn.microsoft.com/ja-jp/microsoft-365-apps/outlook/overview-new-outlook-windows?WT.mc_id=DT-MVP-8907 > > > 以上のように、新しい Outlook は従来の COM/MAPI ベースの拡張を前提としていないため、 > 今後はクラウド API 主体の開発が必要になってきます。 > > また、UIAutomation や Selenium を用いる手法を見かけることもありますが、 > 新しい Outlook の UI は WebView2 内で動的に構築されるため、 > 要素構造が安定せず、実用的な自動化は困難です。 > > > 過去には、"Outlook REST API" という技術もあったのですが、こちらは > v1.0 が 2019年11月に、v2.0 が 2024年3月にそれぞれ廃止されており、 > 現在は "Microsoft Graph API" が利用されます。 > > ・MAPI → それ自体に変更は無いが、クラウド版からは利用不可 > ・Outlook REST API v1.0 → 廃止(2019/11) > ・Outlook REST API v2.0 → 廃止(2024/3) > ・Exchange Web Services → 非推奨 > ・Azure AD Graph API → 廃止(2025/6) > ・Microsoft Graph API → すべての新機能の中心 > > > > >> OutookNameSpace = (Outlook._NameSpace)OutlookApp.GetNamespace("MAPI"); <=ここで以下のエラーが出ます。 > 現在のところ、新しい Outlook は MAPI をサポートしていないようです。 > > https://support.microsoft.com/ja-jp/office/a3f77cbb-2476-4d09-b051-f38a4afe9e23?WT.mc_id=DT-MVP-8907 > 「この問題は、新しい Outlook が現在 MAPI 統合をサポートしていないために発生します。」 > 「新しい Outlook が MAPI 統合のサポートを追加するまでは、MAPI アプリケーションから送信される電子メールを管理するために、従来の Outlook をインストールして構成できます。」 > > > Exchange Online についてみてみると、 > ・MAPI over HTTP は内部実装としては残されているが、外部 API としては推奨されない > ・新しい Outlook は Graph API を前提に設計 > という流れになっています。 > > 先に述べた通り、新しい Outlook ではクラウド API(Microsoft Graph)を中心に設計されているため、 > COM を用いた MAPI ベースの監視プログラムではなく、Microsoft Graph API ベースの監視が要求されます。 > > Microsoft Graph API による監視方法としては、 > ・Delta Query(差分取得) > ・Webhook(通知サブスクリプション) > があります。 > > Delta Query は「定期的に差分を取りに行くポーリング方式」で、 > Webhook は「サーバー側から通知を受け取るプッシュ通知方式」です。 > > Webhook の場合は、受信用のエンドポイントの準備(証明書やドメインなど)が必要で > 実装コストが高いため、今回の要件なら Delta Query の方が良いかもしれません。 > > Microsoft Graph API は OAuth 2.0 (Azure AD) / OpenID Connect による認証が必須のため、 > どのアプリがどのメールボックスにアクセスするかを Azure AD に登録して > ・クライアント ID > ・テナント ID > ・シークレットまたは認証フロー > を準備しておく必要があります。 > > C# で実装する場合は "Microsoft.Graph" (と "Microsoft.Identity.Client") を NuGet します。 > PowerShell で接続する場合は Microsoft Graph PowerShell SDK を用います。 > > > Learn > Microsoft Graph > Outlook メール API の概要 > https://learn.microsoft.com/ja-jp/graph/outlook-mail-concept-overview?WT.mc_id=DT-MVP-8907 > > Microsoft 365 > Microsoft Graph > Changelog > https://developer.microsoft.com/en-us/graph/changelog?WT.mc_id=DT-MVP-8907 > > note > なぜMicrosoft Graphは沼なのか > https://note.com/japan_d2/n/n0c6b1ba5a849
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-