我正在使用 EWS API 连接 Exchange 服务器。连接已建立,但我没有收到任何响应。
我收到异常“从服务收到的响应不包含有效的 XML。”
内部异常是“此 XML 文档中禁止 DTD”。
我没明白什么是DTD?
我一直遇到你的问题,直到(经过多次尝试和错误):
将 TraceEnabled 设置为 true,这会将来回消息转储到控制台。
我使用了网址https://yourexchangeserver/EWS/Exchange.asmx https://yourexchangeserver/EWS/Exchange.asmx
例如我的工作在亚太地区使用 BPOS,所以:https://red003.mail.apac.microsoftonline.com/EWS/Exchange.asmx https://red003.mail.apac.microsoftonline.com/EWS/Exchange.asmx
请求特定的服务版本,例如ExchangeService 服务 = 新 ExchangeService(ExchangeVersion.Exchange2007_SP1)
第 1 步解决了您的第一个问题 - 它提供了 Outlook Web Access html 页面。
步骤 2 让我看到它当时正在请求 2010_Sp1,但该版本不受支持。
第 3 步让“Hello world”开始工作/发送。
另请注意,如果您使用该服务器,我无法让它采用除 2007 SP1 之外的任何版本,因此无法自动发现 URL。
public static string sendMail_BPOS_EWS()
{
try
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.UseDefaultCredentials = false;
service.Credentials = new WebCredentials("[email protected] /cdn-cgi/l/email-protection", "password");
service.Url = new Uri("https://red003.mail.apac.microsoftonline.com/EWS/Exchange.asmx");
Console.WriteLine(service.Url);
service.TraceEnabled = true;
EmailMessage mail = new EmailMessage(service);
mail.From = new EmailAddress("[email protected] /cdn-cgi/l/email-protection");
mail.ToRecipients.Add("[email protected] /cdn-cgi/l/email-protection");
mail.Subject = "Email Subject";
mail.Body = "Email Body";
mail.Send();
return "sent";
}
catch (Exception ex)
{
return ex.ToString();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)