私はOffice 365 Mail APIを使用しています。私の目標は、ユーザーが今日送信(1.) および受信(2.)した電子メール メッセージの総数を取得することです。
これを行うには、最初にOffice 365 API Playgroundでいくつかのクエリを作成して試し、実行しました。
https://outlook.office.com/api/v2.0/me/mailfolders/sentitems/messages?$filter=sentdatetime%20ge%202015-12-10T08:00:00.000Z&$select=Subject,CreatedDateTime,ToRecipients
https://outlook.office.com/api/v2.0/me/messages?$count=true&$filter=receiveddatetime%20ge%202015-12-09T10:00:00.000Z&$select=Subject,CreatedDateTime,ToRecipients
現在、OutlookServicesClient API を使用してこれらのクエリを作成するのに苦労しています。非常に単純なクエリを超える多くの例は見つかりませんでした...私がこれまでに持っているもの:
var mailResults = await client.Me.MailFolders.Where(f => f.DisplayName == "Sent Items").ExecuteAsync();
これはまだメッセージだけを返し、現在の日付でフィルター処理するわけではありません。var mailResults = await client.Me.Messages.Where(m => m.ReceivedDateTime.Value == date.UtcDateTime).ExecuteAsync();
多くのメールを受信したにもかかわらず、結果が返されません。さらに、'Cluster'、'Deleted Items'、'Junk Email' フォルダに受信したメールを除外したいと考えています。
一般に、他の言語のコードを変更する必要があるため、英語のフォルダー名でフィルター処理することが適切かどうかはわかりません。送信済みアイテム、迷惑メール、クラスターなどの特別な Outlook フォルダーに特別な ID はありますか?
さらに、私の 2 つのリクエストを解決するために、すべてのメールを取得して自分でフィルタリングを処理することもできましたが、それは効率的ではなく、API は既にフィルタリングをサポートしています (生のリクエストで見られるように)。それらをOutlookServicesClient APIで使用します。