EWS一覧

NO IMAGE

Exchange Web Service (EWS) の試し方

Exchange Web Service (EWS) を気軽に試す方法はありませんが、EWSEditor を使用して操作を行い、通信を Fiddler で確認するとどのような通信を行っているのかが確認できます。そのため、ここでは EWSEditor を使用して Exchange Online の EWS に接続する方法を紹介します。実際に EWS を使用するアプリケーションを開発する場合は、これらの通信を EWS Managed API を使用しながら (もちろん使用しないことも可能) 実装することになります。なお Exchange Online では EWS よりも Microsoft G...

NO IMAGE

Office 365 で利用可能なメッセージング関連 API について

Office 365 の一部である Exchange Online ではメールや予定表など様々な機能がありますが、これらの各ユーザーのメールボックス上の情報にプログラムからアクセスするためにいくつかの API が用意されています。 様々なアプローチがあるため API も多数ありますが、ここでは EWS / Office 365 API (Outlook REST API) / Microsoft Graph にフォーカスを当てて説明します。 EWS EWS (Exchange Web Services) は、もともとオンプレミスの Exchange 2007 以降で導入された W...

NO IMAGE

GetRoomLists / GetRooms の制限

EWS で会議室一覧配布グループを使用する際、GetRoomLists や GetRooms を使用します。 GetRoomLists で返される会議室一覧配布グループの数には制限はありませんが、GetRooms で返される会議室の数は 100 件に制限されています。 検証のため、まずは会議室一覧配布グループを作り、110 個のメンバーを追加しておきます。 以下のような状態になります。 そして、C# / EWS Managed API で以下のようなコードを書きます。 結果、特に例外は発生しませんが、100 件しか取得できません。 これはスロットリング ポリシーではなく、1...

NO IMAGE

Outlook や OWA の予定表のショートカットを EWS で取得する

Outlook や OWA で開いた他人の予定表は画面左側にリスト表示されますが、この情報を EWS で取得したいという話をよく聞きます。 正しい呼び方がわからないのでここでは説明の都合上「予定表のショートカット」と呼びますが、残念ながら EWS にはこの内容を取得する サポートされた API がありません。 それでも情報はメールボックスに保存されているので、情報を取得できないこともないです。 サポートされる API がない以上、今後実装が変わる可能性はありますが、まずはどのように情報が保存されているのかを確認する必要があります。 予定表のショートカットは、メールボックスのルートの中の...

NO IMAGE

EWS でメッセージ クラスを変更する

EWS でメッセージ クラス (ItemClass プロパティ) を変更して Update を行うと、一部を除いてたいていの場合は ObjectTypeChangedException が発生して失敗します。例えばこれは、IPM.Note を IPM.Post.MySubClass に変更をしようとしたときの EWS ログです。 2016-05-24T09:44:41.693Z,34817ede-9d8a-4b81-9b92-2d9c0e2cfe49,15,0,995,12,,Negotiate,True,Administrator@rykoma01.lab,rykoma01.lab,Exch...

Exchange Online の EWS に OAuth を使用して接続する

2018/06/24 最新の情報に合わせて書き直しました。 Exchange Online に EWS で接続する際、OAuth 認証を使用することができるので、手順をまとめてみました。今回は開発言語は C# を使用しています。また、Web アプリケーションではなくデスクトップ アプリケーションを想定しています。いくつか参考になる情報はインターネット上で見つかりますが、Azure も Exchange Online も常に変化しているので、普遍的な内容ではないのでご注意ください。 アプリケーションの登録 以下の URL にアクセスして、Azure Active Dir...

NO IMAGE

EwsAllowList / EwsBlockList の挙動

オンプレミスでもオンラインでも、EWS アプリケーションの接続を制限したいときは Set-CasMailbox コマンドで設定することができます。EWS については比較的細かく設定することができるようになっており、EWS アプリケーションが使用するユーザー エージェントを許可リストもしくはブロックリストに登録して使用できるようになっています。 その時に使用するのが EwsAllowList / EwsBlockList ですが、ちょっと困った挙動があります。EwsAllowList / EwsBlockList に登録する文字列は大文字小文字を区別しません。そのため、例えば「MyApp*...

NO IMAGE

EWS Java API を使ってみる

GitHub で公開されている EWS Java API、名前の通り Java から Exchange Web サービスを呼び出すための API です。Windows 環境から EWS 接続をする場合は EWS Managed API を C# や VB から利用するのが便利ですが、Java で利用したい場合は EWS Java API を使用することになります。 ただこの API、使えるようにするまでの説明が全然ない。。。 筆者は Visual Studio での開発経験しかないので Java だとどうしたらよいのか全く分かりませんでした。Java 開発者にとってはなんてことない...