EWS 调用的响应是否收到无效的 XML?

2024-04-18

我正在使用 EWS API 连接 Exchange 服务器。连接已建立,但我没有收到任何响应。

我收到异常“从服务收到的响应不包含有效的 XML。”

内部异常是“此 XML 文档中禁止 DTD”。

我没明白什么是DTD?


我一直遇到你的问题,直到(经过多次尝试和错误):

  1. 将 TraceEnabled 设置为 true,这会将来回消息转储到控制台。

  2. 我使用了网址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

  3. 请求特定的服务版本,例如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(使用前将#替换为@)

EWS 调用的响应是否收到无效的 XML? 的相关文章

随机推荐