我正在创建一个C#.Net Core 2.0控制台应用程序来读取特定用户的电子邮件。我成功地让这个sample console application工作。身份验证正在运行。我添加了阅读所有用户的电子邮件的权限。我查看了API文档,但我看不到阅读用户电子邮件的示例。大量的发送示例。任何帮助赞赏。
谢谢发帖。如果我注释掉过滤器,我就可以使用它:
GraphServiceClient client = GetAuthenticatedClient();
string subject = "RE: ACTION NEEDED:";
string dt = "2018-10-5T00:00:00";
IUserMessagesCollectionPage msgs = client.Users["[email protected]"].Messages.Request()
//.Filter($"receivedDateTime ge '{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;
我发布了一些关于让过滤器工作的东西。 STARTwith工作但日期过滤器失败。
得到每个人的邮件。
var users = graphClient.Users.Request().GetAsync().Result;
获取特定用户的邮件:
List<QueryOption> options = new List<QueryOption>
{
new QueryOption("$filter", "startswith(displayName,'the specific user's mail')")
};
var users= await graphClient.Users.Request(options).GetAsync();
//Or
var users = await graphClient.Users.Request().Filter("startswith(displayName,'help')").GetAsync();
获取邮件:
foreach (var item in users)
{
string currentMail=item.Mail;
}
更新2018-10-7更新您的帖子:
您可以使用以下API过滤邮件:
https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messages?$filter=ReceivedDateTime ge 2018-10-04 and startswith(subject,'{subject}')