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

Posted

技术标签:

【中文标题】使用 EWS API 发送电子邮件方法获取 401 未经授权【英文标题】:Using EWS API send email method get 401 unauthorized 【发布时间】:2018-10-30 14:32:20 【问题描述】:

我对 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

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

【问题讨论】:

401 非常直接,要么是您的凭据错误,要么是您的 Exchange Server 上未正确配置 EWS。 嗨,我也遇到了这个问题,我找不到与这个问题相关的任何信息。凭据有效,但我仍然收到这个烦人的错误 【参考方案1】:

我检查了您的提供链接,没有发现任何问题。一般来说,这样写是没有问题的。问题应该与您的服务器环境或wanndream提到的帐户有关。

您可以参考以下链接:

"(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

另外,您能否更改您的帐户进行测试?

【讨论】:

【参考方案2】:

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

service.CookieContainer = new CookieContainer();

当时它似乎起到了作用,但不确定它是否仍然是一件事。

【讨论】:

以上是关于使用 EWS API 发送电子邮件方法获取 401 未经授权的主要内容,如果未能解决你的问题,请参考以下文章

使用 EWS for Exchange 2013 获取收件人电子邮件地址

使用 EWS API 发送电子邮件时控制消息编码

EWS - 新邮件通知

EWS 中的扩展属性

EWS(Exchange Web 服务)出现未经授权的错误

使用Ews API去删除邮件内容中包含特定关键字的邮件