我正在创建一个C#.Net Core 2.0控制台应用程序以读取特定用户的电子邮件。我已成功使此sample console application工作。因此身份验证有效。我添加了阅读所有用户电子邮件的权限。我查看了API文档,但看不到阅读用户电子邮件的示例。大量发送示例。任何帮助表示赞赏。
答案 0 :(得分:0)
获取每个人的邮件。
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}')
答案 1 :(得分:0)
感谢您的发布。如果我将过滤器注释掉,我可以使用它:
GraphServiceClient client = GetAuthenticatedClient();
string subject = "RE: ACTION NEEDED:";
string dt = "2018-10-5T00:00:00";
IUserMessagesCollectionPage msgs = client.Users["UserName@CompanyName.com"].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;
我发布了一些有关使过滤器正常工作的信息。 startswith可以使用,但是日期过滤器失败。