首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Exchange Web服务API和401未经授权的异常

Exchange Web服务API和401未经授权的异常
EN

Stack Overflow用户
提问于 2012-11-23 01:07:55
回答 3查看 54.7K关注 0票数 26

当我尝试使用EWS API发送电子邮件时,我得到以下错误:(在message.Send();中)

请求失败。远程服务器返回错误:(401)未授权。

我的代码如下:

ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

//WebService Uri
try
{
    exchangeService.Url = new Uri("https://exchangeserver/ews/exchange.asmx");
}
catch (Exception ex)
{
    throw new Exception(string.Format("WebService Uri:" + ex));
}

//Credentials
try
{
    exchangeService.Credentials = new WebCredentials("user@domain", "pwd", "domain");
}
catch (Exception ex)
{
    throw new Exception(string.Format("Credentials:" +  ex));
}

//Send a mail
try
{
    EmailMessage message = new EmailMessage(exchangeService);
    message.Subject = "Test";
    message.Body = "Test";
    message.ToRecipients.Add("destination@domain");
    message.Save();
    message.Send();
}
catch (Exception ex)
{
    throw ex;
}

我读了这个网站上关于这个问题的其他帖子,但他们不能解决我的问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-23 01:22:50

尝试更改此设置:

 exchangeService.Credentials = new WebCredentials("user@domain", "pwd", "domain");

如下所示:

 exchangeService.Credentials = new WebCredentials("user", "pwd", "domain");

有时,登录凭据取决于Exchange/Active Directory的配置方式。它可以是user@domain或domain\user

票数 40
EN

Stack Overflow用户

发布于 2014-01-23 01:30:43

在我的例子中,我需要将允许的URL列表添加到IIS站点下的EWS Virtual Directory中。

  1. 转到IIS管理,单击默认网站下的“EWS”节点,然后双击“请求筛选”。

  1. 转到URL选项卡,然后在右侧单击Allow URL。

example.com/ews/或server.example.com/ews/输入调用服务所用的

此外,与类似的问题相关,我需要将所有主机(*)添加到winrm受信任主机(默认情况下,它只列出本地IP )。

票数 2
EN

Stack Overflow用户

发布于 2018-07-05 15:47:06

此问题可能导致Microsoft office 365提供的双向身份验证。最好创建一个应用程序密码,并传递该密码,而不是outlook密码。

exchangeService.Credentials = new WebCredentials("email", "app-pwd");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13517323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档