Exchange Online一覧

Microsoft Graph で会議の別の時間を提案する

2020 年 7 月の更新で、会議出席依頼における新しい時間の提案に関するプロパティが Microsoft Graph に追加されました。 実際に動きを見てみましょう。まず以下のように User01 から User02 へ明示的に allowNewTimeProposals を true にした会議出席依頼を送信します。 POST { "subject": "Let's go for lunch", "body": { "contentType": "HTML", "content": "Does late morning work for...

NO IMAGE

OAuth を使って Exchange Online に POP で接続する

Exchange Online の基本認証無効化に向けて、POP でも OAuth がサポートされるようになりました。開発者向けの情報は以下のページに記載されています。 C# で実装する場合の基本的な内容を作成したので、以下にサンプル コードを紹介します。コード自体に対する説明は特にないので、上記の開発者向けページと併せて読んでいただければと思います。必要最低限の内容のみを実装しているため、本格的に実装を行うには Microsoft Identity Platform や POP の知識が必要になります。C# のコンソール アプリケーションとなっており、認証ライブラリとして MSAL ...

NO IMAGE

OAuth を使って Exchange Online に SMTP で接続する

Exchange Online の基本認証無効化に向けて、SMTP でも OAuth がサポートされるようになりました。開発者向けの情報は以下のページに記載されています。 C# で実装する場合の基本的な内容を作成したので、以下にサンプル コードを紹介します。コード自体に対する説明は特にないので、上記の開発者向けページと併せて読んでいただければと思います。必要最低限の内容のみを実装しているため、本格的に実装を行うには Microsoft Identity Platform や SMTP の知識が必要になります。C# のコンソール アプリケーションとなっており、認証ライブラリとして MSA...

NO IMAGE

OAuth を使って Exchange Online に IMAP で接続する

Exchange Online の基本認証無効化に向けて、IMAP でも OAuth がサポートされるようになりました。開発者向けの情報は以下のページに記載されています。 C# で実装する場合の基本的な内容を作成したので、以下にサンプル コードを紹介します。コード自体に対する説明は特にないので、上記の開発者向けページと併せて読んでいただければと思います。必要最低限の内容のみを実装しているため、本格的に実装を行うには Microsoft Identity Platform や IMAP の知識が必要になります。C# のコンソール アプリケーションとなっており、認証ライブラリとして MSA...

NO IMAGE

Windows PowerShell で MSAL を使って EWS 用のアクセス トークンを取得する

C# で MSAL (Microsoft.Identity.Client) を使って EWS 用のアクセス トークンを取得する方法は Authenticate an EWS application by using OAuth に記載されています。しかしながら PowerShell の場合については Docs に記載がありません。こちらのブログでは PowerShell の場合についての記載がありますが、ADAL も MSAL も使用しない実装になっています。「ライブラリを使用しなくても実装できることをわざわざライブラリを使用して実装するのは面倒」と考えることもできますが、ブログに記載の方法...

NO IMAGE

RobustCloudCommand Module の紹介

以前は Script だった Start-RobustCloudCommand.ps1 が、Module になってしかも MFA にも対応したということで、使い方を紹介します。 おさらい Exchange Online の PowerShell はスロットリングやセッションの不安定さなどの問題から、長時間大量のオブジェクトに対する処理を実行するのがものすごく苦手です。そんな時にセッションを管理しながら Exchange Online のコマンドを実行するのが Start-RobustCloudCommand.ps1 でした。紹介ブログが日本語にも翻訳されていたので、 Start-...

NO IMAGE

Microsoft Graph の getSchedule

Microsoft Graph の getSchedule は、空き時間情報を取得する API です。Outlook のスケジュール アシスタントのように、他人の予定の詳細ではなく空いているかどうかを取得します。基本的なことは Get free/busy schedule of users and resources や calendar: getSchedule を参照してください。 空き時間情報にも何段階かあります。どこまでの情報が取得できるのかは、参照先ユーザーの予定表に対してどこまでの権限を持っているのかによって異なります。いくつかのパターンで見ていきましょう。 まずはテ...

NO IMAGE

Exchange Online の全ユーザーのメールボックスを取得する

Exchange Online では、以下のような全ユーザーを取得するコマンドが失敗するという話をよく聞きます。 Get-Mailbox -ResultSize Unlimited これは割と有名な話で、特に大規模な環境でユーザー数が多いと失敗します。データ量が多くなることが問題の 1 つなので、対策としては、例えば以下のブログでは Invoke-Command を使ってサーバー サイドで実行して結果だけを受け取る方法を紹介しています。 膨大な数の Office 365 ユーザーへの PowerShell コマンドレットの実行 Invoke-Command -sess...

NO IMAGE

Office 365 Reporting web service の MessageTraceDetail をローカライズする

リファレンスには以下のように書いてありますが、きちんと Accept-Language ヘッダーをつけてあげると MessageTraceDetail のレスポンスはローカライズされます。 Explicitly set the Accept-Language HTTP request header. Currently there is nothing localized that comes through the Reporting web service, but that can change, and if your customers are using a differe...

Exchange Online の PowerShell で警告出力を取得する方法

Exchange Online の PowerShell では以下のように警告が出力されることがあります。 この警告の内容をスクリプトで取得するには、コマンド自体を Invoke-Command で実行して、WarningVariable で取得します。以下のようにします。 $warn = "" Invoke-Command -Command {Get-Mailbox -ResultSize 1} -Session:(Get-PSSession) -WarningVariable warn こうすると、WarningVariable に指定した変数を参照することで警...