我是否可以使用Office 365 Mail API访问公司内的所有电子邮件?我知道我可以访问个人,但是帽子要求我被允许访问他们的电子邮件并获得他们的访问权限。我希望能够拥有管理员访问令牌,并能够访问每个人的电子邮件。是否可能有任何想法?
答案 0 :(得分:1)
有可能。我们可以注册Web应用程序和/或Web API(默认情况下,在OAuth2用语中称为机密客户端),构建守护程序服务以检索组织的所有消息。
以下是使用客户端凭据请求令牌并从不同用户获取消息的示例:
string authority = "https://login.microsoftonline.com/msdnofficedev.onmicrosoft.com";
string resource = "https://Graph.microsoft.com";
string clientID = "";
string clientSecret = "";
AuthenticationContext ac = new AuthenticationContext(authority);
AuthenticationResult ar = ac.AcquireToken(resource, new ClientCredential(clientID, clientSecret));
HttpClient hc = new HttpClient();
hc.DefaultRequestHeaders.Add("Authorization", "Bearer " + ar.AccessToken);
HttpResponseMessage hrm = await hc.GetAsync("https://Graph.microsoft.com/v1.0/users/fx@msdnofficedev.onmicrosoft.com/messages/");
string content=await hrm.Content.ReadAsStringAsync();
MessageBox.Show(content);
HttpResponseMessage hrm2 = await hc.GetAsync("https://Graph.microsoft.com/v1.0/users/user1@msdnofficedev.onmicrosoft.com/messages/");
content = await hrm2.Content.ReadAsStringAsync();
MessageBox.Show(content);
有关Azure AD中注册应用程序的更多详细信息,请访问以下链接: https://azure.microsoft.com/en-us/documentation/articles/active-directory-integrating-applications/#BKMK_Native