通过ews发送简单的电子邮件正在按预期工作 - 从我的帐户到我的帐户:
ExchangeService ews = new ExchangeService(ExchangeVersion.Exchange2010);
ews.AutodiscoverUrl("myname@mydomain.com");
EmailMessage email = new EmailMessage(ews);
email.ToRecipients.Add("myname@mydomain.com");
email.Subject = "HelloWorld";
email.Body = new MessageBody("This is the first email I've sent by using the EWS Managed API");
email.Send();
只是尝试模拟,它也按预期工作 - 在最后一行,它返回我不允许冒充的错误:
ExchangeService ews = new ExchangeService(ExchangeVersion.Exchange2010);
ews.AutodiscoverUrl("myname@mydomain.com");
ews.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "testuser@mydomain.com");
EmailMessage email = new EmailMessage(ews);
email.ToRecipients.Add("myname@mydomain.com");
email.Subject = "HelloWorld";
email.Body = new MessageBody("This is the first email I've sent by using the EWS Managed API");
email.Send();
现在我尝试使用我的应用服务帐户登录:
ExchangeService ews = new ExchangeService(ExchangeVersion.Exchange2010);
ews.Credentials = new NetworkCredential("service", "1234", "mydomain.com");
//ews.Credentials = new WebCredentials("service", "1234");
ews.AutodiscoverUrl("myname@mydomain.com");
//ews.AutodiscoverUrl("service@mydomain.com");
ews.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "testuser@mydomain.com");
EmailMessage email = new EmailMessage(ews);
email.ToRecipients.Add("myname@mydomain.com");
email.Subject = "HelloWorld";
email.Body = new MessageBody("This is the first email I've sent by using the EWS Managed API");
email.Send();
但是在这里它会在自动发现行中抛出一个错误:“AutodiscoverLocalException:无法找到自动发现服务。”
服务帐户在AD和Exchange中设置,密码和smtp地址正确。
为什么不工作?如何检查导致该错误的原因?
答案 0 :(得分:4)
我解决了问题,猜猜问题是什么:它是用户帐户。
EWS使用给定的凭据对自身进行身份验证,以便访问
处的自动发现服务http://mydomain/AutoDiscover/AutoDiscover.xml
凭据是正确的,但似乎对于设置为“用户必须在首次登录时更改密码”的帐户,拒绝访问自动发现服务。我在AD中更改了该设置,现在它可以正常工作。
答案 1 :(得分:0)
如果这是本地域,请尝试使用mydomain
而不是mydomain.com
我发现.com
或.local
对我不起作用。
如果是Office365服务器,请对域使用null
或string.Empty
。
答案 2 :(得分:0)
我在主机文件&中添加了以下行。它对我有用;
192.168.32.43 mail.mydomain.com
192.168.32.43 autodiscover.mydomain.com