Microsoft Graph .NET 客户端库是否支持按正文和创建日期过滤消息?
Does the Microsoft Graph .NET client library support filtering messages by body and creation date?
我在我的项目中使用这个库 (Microsoft Graph .NET client library) 从我的邮箱中检索电子邮件。但是,当我尝试按 createdDateTime 或正文从我的邮箱中过滤邮件时,我收到“错误请求”错误。这是我的要求:
private static IMailFolderMessagesCollectionPage GetMessages(string subject, int count)
{
return new graphServiceClient.Me.MailFolders.Inbox.Messages.Request().Filter($"subject eq '{subject}' and createdDateTime gt '{DateTime.Now.AddMinutes(-10)}'").Top(count).GetAsync().Result;
}
private static IMailFolderMessagesCollectionPage GetMessages(string subject, string bodyPart, int count)
{
return new graphServiceClient.Me.MailFolders.Inbox.Messages.Request().Filter($"subject eq '{subject}' and body contains '{bodyPart}'").Top(count).GetAsync().Result;
}
我使用的 Microsoft Graph API 和库本身是否支持按 createdDateTime 和正文过滤电子邮件(消息)?如果是这样,有人知道问题出在哪里吗?
UPD
原来我有错误的请求按正文过滤电子邮件。以下是正确的查询,但我还找不到该查询的任何字母。也许有人会觉得有用。
private static IMailFolderMessagesCollectionPage GetMessages(string subject, string bodyPart, int count)
{
return new graphServiceClient.Me.MailFolders.Inbox.Messages.Request().Filter($"subject eq '{subject}' and contains(body/content, '{bodyPart}')").Top(count).GetAsync().Result;
}
要按 createdDateTime
过滤,您应该删除 ''
并使用 ISO 8601 格式。例如:2021-07-29T14:32:12Z
在你的情况下,你可以使用ToString("s")
,请找到如下代码:
return new graphServiceClient.Me.MailFolders.Inbox.Messages.Request().Filter($"subject eq '{subject}' and createdDateTime gt {DateTime.UtcNow.AddMinutes(-10).ToString("s")}Z").Top(count).GetAsync().Result;
我在我的项目中使用这个库 (Microsoft Graph .NET client library) 从我的邮箱中检索电子邮件。但是,当我尝试按 createdDateTime 或正文从我的邮箱中过滤邮件时,我收到“错误请求”错误。这是我的要求:
private static IMailFolderMessagesCollectionPage GetMessages(string subject, int count)
{
return new graphServiceClient.Me.MailFolders.Inbox.Messages.Request().Filter($"subject eq '{subject}' and createdDateTime gt '{DateTime.Now.AddMinutes(-10)}'").Top(count).GetAsync().Result;
}
private static IMailFolderMessagesCollectionPage GetMessages(string subject, string bodyPart, int count)
{
return new graphServiceClient.Me.MailFolders.Inbox.Messages.Request().Filter($"subject eq '{subject}' and body contains '{bodyPart}'").Top(count).GetAsync().Result;
}
我使用的 Microsoft Graph API 和库本身是否支持按 createdDateTime 和正文过滤电子邮件(消息)?如果是这样,有人知道问题出在哪里吗?
UPD
原来我有错误的请求按正文过滤电子邮件。以下是正确的查询,但我还找不到该查询的任何字母。也许有人会觉得有用。
private static IMailFolderMessagesCollectionPage GetMessages(string subject, string bodyPart, int count)
{
return new graphServiceClient.Me.MailFolders.Inbox.Messages.Request().Filter($"subject eq '{subject}' and contains(body/content, '{bodyPart}')").Top(count).GetAsync().Result;
}
要按 createdDateTime
过滤,您应该删除 ''
并使用 ISO 8601 格式。例如:2021-07-29T14:32:12Z
在你的情况下,你可以使用ToString("s")
,请找到如下代码:
return new graphServiceClient.Me.MailFolders.Inbox.Messages.Request().Filter($"subject eq '{subject}' and createdDateTime gt {DateTime.UtcNow.AddMinutes(-10).ToString("s")}Z").Top(count).GetAsync().Result;