使用EWS API发送电子邮件方法未经授权获得401

时间:2018-10-30 14:32:21

标签: outlook exchangewebservices

我是EWS API的新手。现在,当我使用EWS示例发送电子邮件时遇到问题。仍然出现错误:

401未经授权。

这是我的示例代码:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
  service.Credentials = new WebCredentials("user1@contoso.com", "password");
  service.TraceEnabled = true;
  service.TraceFlags = TraceFlags.All;
  service.AutodiscoverUrl("user1@contoso.com", RedirectionUrlValidationCallback);
  EmailMessage email = new EmailMessage(service);
  email.ToRecipients.Add("user1@contoso.com");
  email.Subject = "HelloWorld";
  email.Body = new MessageBody("This is the first email I've sent by using the EWS Managed API");
  email.Send();

email.Send()函数中的错误。有什么帮助吗? 相关链接:https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/get-started-with-ews-managed-api-client-applications

我搜索了所有链接,但没有正确答案。

2 个答案:

答案 0 :(得分:0)

我已经检查了您的提供链接,但没有发现任何问题。通常,以这种方式编写没有问题。该问题应该与您的服务器环境或帐户有关,如wannadream所述。

您可以参考以下链接:

"(401) Unauthorized" error when you use an EWS application to impersonate a user in Office365 Dedicated/ITAR

Exchange Web Service API and 401 unauthorized exception

还可以请您更改帐户进行测试吗?

答案 1 :(得分:0)

在黑暗中射击,但易于尝试:几年前,我遇到了无法解释的401s,并发现了一些网络帖子,其中提到在服务对象中添加一个空cookie容器,即:

service.CookieContainer = new CookieContainer();

当时似乎可以解决问题,但不确定是否仍然存在。