あなたのJavaコードは、Microsoft Exchange Serverを使用してメールを送信する必要があります。または、Javaを使用してMicrosoft Exchange Serverから電子メールを読み取る必要があります。あるいは、あなたが興味を持っているのはカレンダーで、そこから情報を取得しようとしたり、異なるカレンダーを同期しようとしたりしているのかもしれません。JavaでMicrosoft Exchange Calendar APIを使ってどのように作業するのでしょうか?
あらゆる種類のソフトウェアと統合する古典的な方法は、その API を使用することです。ですから、もしあなたがMicrosoft Exchangeと統合しようとしているのであれば、おそらくExchangeのAPIの使い方を見つけようとしているはずです。
APIは時代とともに変化する - Microsoft Exchange APIの歴史を振り返る
JavaからExchangeに統合する最も一般的な方法は、Exchange Web Services(EWS)でした。EWS SDK for JavaはMicrosoft Exchange 2007の一部として発表された。これはSOAPベースのAPIだが、2018年7月にマイクロソフトはこれの機能アップデートを行わないと発表したことだ。EWS SDK for Javaはしばらくの間セキュリティアップデートを受け続けるだろうが、現時点ではそれを使ってプロジェクトを始める意味はない。
もうひとつの重要な変更点は、2020年10月13日からExchangeウェブサービス(EWS)のベーシック認証のサポートが完全に終了することだ。マイクロソフトは、すべてをOAuthに移行することを望んでいる。OAuthは実際にははるかに優れたオプションであり、国際標準規格(ISO/IEC)としても承認されている。OAuthをご存じない方は、以下をご覧ください。 此処 そしてさらに深く 此処.そして、これは良い方向への動きではありますが、基本認証のサポートが終了すると、アプリがEWSを使用してExchangeに接続する際に基本認証を使用できなくなるという事実があります。
で、どうするの?
JavaからAPI経由でMicrosoft Exchangeに接続したい場合で、Microsoftの推奨に従いたい場合は、Microsoft Graphを使用してください。
Microsoft Graphは2015年にOffice 365の上に構築され、1つのエンドポイントを介してさまざまなOffice 365クラウドサービスへの呼び出しを委譲します。https://graph.microsoft.com/.それは今ではExchangeのような他のMicrosoft製品へのアクセスを含むように時間をかけて進化してきました。

Microsoft Graph内では、Microsoft Graph APIまたはMicrosoft Graph data connectを使用することができます。いずれの方法でも、まず最初に ご利用条件.Microsoftは、APIでできることとできないことについてかなり具体的に説明していますので、見てみてください。
ほとんどのケースでは、Microsoft Graph APIがお勧めです。以下、もう少し詳しく見ていきましょう。
ビッグデータを扱う必要がある場合や、きめ細かな同意が必要な場合には、Microsoft Graph data connectを検討する必要があります(通常のAPIでは不可能な、特定のフィールドや除外項目をお客様が確認することができます)。しかし、Microsoft Graph data connectを検討する場合には、注意しなければならない重要なルールがあります。それは、お客様のOffice 365テナントから、関連するAzureテナントにしかデータを送信しないということです。
最も一般的なオプションである通常のAPIに戻ろう。現在、Microsoft Graph REST APIにはベータ版とv1.0の2つのバージョンがある。v1.0を見ることができる。 ベータ版しかし、もちろん、本格的な開発には製品版 1.0 に固執する必要があります。そのバージョンについては 文書化 そして、その ジャバSDK.そう、もしあなたがこのAPIを始めようとしているのであれば、たくさんの勉強が必要です!...。
APIを利用するには、まず自分のアプリケーションを登録する必要があります。これはあまりエキサイティングな第一歩ではありませんが、APIを直接使用する場合、APIコールでアプリケーションを表現するためのアプリケーションIDが必要になります。このためには、会社や学校のアカウント、またはMicrosoftアカウントが必要になります。
- マイクロソフト アプリケーション登録ポータル
- Azure Active Directory管理ポータル(エンタープライズクラスのアプリケーションに推奨)
アプリケーションが機密性の高いクライアント(サービス)である場合、それを保護するために新しいアプリのパスワードを作成する必要があります。登録が完了すると、アプリケーション用のIDが作成され、新しいアプリのプロパティページに表示されます。
最後に、Microsoft Graphも常に変化していることに注意してください。経年変化(2015年12月以降)を把握するには チェンジログ.これを使って作業したい場合は、API の現在のプロダクションバージョンが何であるかを常に確認することをお勧めします。
もっと良い方法はないのか?
あまり興味のない方は
- そもそもマイクロソフトと仕事をする
- ドキュメントの研究に膨大な時間を費やさなければならない
- 今後のMicrosoft Graph APIの変更によって発生するエラーに耐えなければならない。
何か代替案はないかと悩んでいるかもしれません。そう、もっと良い方法があるのです!
APIを直接使用する代わりに、自分とAPIの間に薄いレイヤーを置くことができます。私たちはこのレイヤーを Connect Bridge と呼んでいます。このレイヤーは、すべてのものが高速で効率的に動作するように十分に薄く作られていますが、Microsoft ExchangeやMicrosoft Graph APIには決して触れないように十分に厚く作られています。

Connect Bridgeは有料ツールですが Connect Bridge無料トライアル 利用可能なので、それがあなたのために動作するかどうかを確認することができます。このツールの優れた点は、前方と後方の互換性を保証することです。
あなたはConnect Bridgeと統合するJavaコードを構築し、ユーザーはExchangeをアップグレードすることができ、マイクロソフトはAPIの新バージョンをリリースすることができる...そしてあなたはそれを心配する必要はない。Microsoft Graph API v1.0の後に何が来るかは関係ありません。あなたのソリューションはまだ機能する!一度コードを書けば、あとは複雑さを気にする必要はありません。
本ツールの使用環境に制限はありません。以下の環境で実行することができます。
- コネクティング・ソフトウェアが管理するAzure構築のSaaSプラットフォーム
- オンプレミスまたは独自のクラウドサーバーまたは仮想マシン(セルフホスト型)
Connect Bridgeの仕組みは?裏では何をしているのでしょうか?基本的には標準SQL文をAPI呼び出しに変換します。コード上では、JDBC(ODBCやWebサービスもサポートされています)を使用してリレーショナルデータベースにアクセスしているように見えます。SELECT、INSERT、UPDATE、DELETE文を書いています。ストアドプロシージャのようなものを使用しています。しかし、それはすべて抽象化されたレイヤーにすぎません。
あなたはMicrosoft Exchangeのデータベースにアクセスしているわけではありません(信じてください、そんなことはしたくありません!)。しかし、あたかもそうであるかのように見えます。Connect Bridgeにはクエリツールが付属しており、(偽の)クエリをテストしたり、(偽の)列を持つ(偽の)テーブルを見たり、便利な(偽の)ストアドプロシージャを見つけたりすることができます。先ほど言ったように、まるでSQLデータベースを使っているかのように感じられますが、それは単なる抽象的なものです。
必要なテストをすべて終えたら、JDBCを使ってデータベースに接続するのと同じように、接続とクエリーをコードに記述するだけです!これで、メンテナンス不要のソリューションが完成しました。メンテナンスの手間はすべてConnect Bridge側にあります。だからこのツールは有料なのです。これは非常に賢いアイデアだと思います!
また、このツールはセキュリティや認証にも対応しているので、一から開発しているとかなりの時間がかかってしまうのも良い点です。
結論
JavaでMicrosoft Exchangeのデータにアクセスする方法を見てきましたが、Connect Bridgeの統合プラットフォームを使って簡単にできるようになっています。

さらに良いニュースがあります:これはMicrosoft DynamicsとMicrosoft SharePointでも可能です。実際のところ、MicrosoftのソフトウェアやSalesforce、その他多くのソフトウェアに接続することができます。基本的な統合プラットフォームであるConnect Bridgeを入手し、適切なコネクタを選択する必要があります。
Connect Bridgeで現在販売されているコネクタを知りたい場合は、以下を参照してください。 https://www.connecting-software.com/connectors/

この膨大なコレクションの中で、最新のコネクターがどれかをお知りになりたい場合は、Connect Bridgesの Dynamics 365 ファイナンス&オペレーション そして Dynamics 365 Business Central コネクタを使用しています。
また、Connect Bridgeを使用した既製品や、完全にアウトオブボックスのソリューションがあることを知っておくことも重要です。例えば CB Exchange Server Sync カレンダー、電子メールフォルダ、タスク、連絡先、パブリックフォルダの一方向または双方向の同期をカスタムで選択することができます。
この記事がお役に立てれば幸いですここでは、他の統合の可能性について議論しているブログの記事をいくつか紹介します。
著者について

記入例 アナ・ネト, テクニカルアドバイザー Connecting Softwareにて。
"私は1997年からソフトウェア・エンジニアであり、最近は書くことと人前で話すことが好きです。この記事について質問やコメントはありますか?ご意見・ご感想をお待ちしております!"
