【发布时间】:2015-12-18 15:33:25
【问题描述】:
我正在尝试从我的 C# ASP MVC Web 应用程序设置 Office 365 集成,为此我使用 Outlook Mail REST API(客户端版本)。我一直在这里使用 API 参考:https://msdn.microsoft.com/office/office365/APi/mail-rest-operations
我可以正常登录 Office 365,获取令牌,然后阅读邮件文件夹(即已发送邮件/收件箱),但是当我尝试发送电子邮件时,我收到以下错误:
未经授权
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:Microsoft.OData.Client.DataServiceClientException:未经授权
我已经添加了读/写和发送电子邮件的权限,所以当我登录 Office 365 时会显示:
Office Integration Test App needs permission to:
Access your data anytime
Sign in as you
Send mail as you
Read and write access to your mail
所以我认为“以您的身份发送邮件”是我需要的。但是我仍然收到 Unathorized 错误消息。
这是我正在运行以发送电子邮件的代码:
string AccessToken = (string)Session["Office365Token"];
OutlookServicesClient client = new OutlookServicesClient(new Uri("https://outlook.office.com/api/v2.0"),
async () =>
{
return AccessToken;
});
ItemBody EmailBody = new ItemBody
{
Content = "Test email from the project",
ContentType = BodyType.HTML
};
List<Recipient> toRecipients = new List<Recipient>();
toRecipients.Add(new Recipient() { EmailAddress = new EmailAddress() { Address = "testemail@test.com" } });
Message newMessage = new Message
{
Subject = "Test Subject For Email",
Body = EmailBody,
ToRecipients = toRecipients
};
await client.Me.SendMailAsync(newMessage, true);
当我调用 SendMailAsync 时,错误发生在最后一行。我不确定还有什么可以尝试的,也找不到任何关于什么会导致这种情况的信息。
非常感谢任何帮助!
【问题讨论】:
标签: c# asp.net-mvc api email office365