特定のユーザーの電子メールの電子メールを読み取り、特定の条件を満たす電子メールを処理するコンソール アプリを作成しています。サンプルコードは次のとおりです。
GraphServiceClient client = GetAuthenticatedClient();
string subject = "RE: ACTION NEEDED:";
string dt = "2018-10-5T00:00:00Z";
IUserMessagesCollectionPage msgs =
client
.Users["UserName@CompanyName.com"]
.Messages.Request()
//.Filter($"receivedDateTime gt {dt}") // invalid filter
.Filter($"startswith(subject, '{subject}') and receivedDateTime gt {dt}")
.Select(m => new { m.Subject, m.ReceivedDateTime, m.From, m.Body })
.Top(100)
.GetAsync().Result;
int msgCnt = msgs.Count;
Console.WriteLine($"Message count: {msgCnt}");
Console.ReadLine();
2 問題:
このフィルターを機能させたい:
.Filter($"startswith(subject, '{subject}') and receivedDateTime gt {dt}")
はstartswith
単独で機能しますが、日付フィルターを使用するとエラーになります。
日付フィルターを単独で試しましたが、機能しません。無効なフィルターを取得します。運が悪かったので、日付を一重引用符で囲みました。
.Filter($"receivedDateTime gt {dt}") // Get invalid filter
何か案は?