【问题标题】:Problems using the EWS API on mixed Exchange versions在混合 Exchange 版本上使用 EWS API 的问题
【发布时间】:2012-05-02 18:12:31
【问题描述】:

我有一个使用 EWS API 的应用程序。有些计算机使用 Exchange 2003,有些使用 2007/2010。最初,在我的应用程序中我刚刚使用:

ExchangeService service = new ExchangeService();
service.UseDefaultCredentials = true;
service.AutodiscoverUrl(url);

但我很快发现在使用 2003 的计算机上失败了,并出现错误:“客户端邮箱必须在 Exchange Server 2010 或更高版本上”。 所以我把我的代码改成了(显然是去掉了Exchange服务器的实际地址):

ExchangeService service = new ExchangeService();
service.UseDefaultCredentials = true;
service.Url = new Uri("https://.....");

现在我收到错误消息:“请求的邮箱不支持指定的 RequestServerVersion。”。

所以,我想我明白为什么会发生这种情况,而且我似乎必须做一些完全不同的事情才能让它在 2003 年正常工作。除了没有使用 Net.Mail api 之外,我不确定到底是怎么做的去做吧。我是否仍可以使用 EWS API?如果可以,我需要进行哪些更改才能使其同时在两者上工作?

【问题讨论】:

  • EWS 是随 Exchange 2007 引入的,因此我不会使用 2003。我认为您必须先告诉我们您要完成的工作,然后我们才能建议您使用哪个 API。
  • 我希望能够从这个应用程序发送电子邮件。这里的一些计算机使用 Exchange 2007,一些使用 2003。我已经让它与 2007 一起工作。为了让它与 2003 一起工作,我应该只使用 Net.Mail api 还是有另一种/更好的方法?跨度>

标签: c# exchangewebservices


【解决方案1】:

Exchange 2003(2000?) 使用不同的 API,这与 EWS 完全不同。 Exchange 2007 支持这两种 API。

您可以使用 CDO How do I use CDO with Exchange with vbscript

或 WebDAV Access Your Exchange 2000 / 2003 Mailbox With WebDAV

注意
我认为最好使用New ExchangeService(ExchangeVersion.Exchange2007_SP1),然后您确定它适用于 2007 并在 2010 上使用向后兼容。

【讨论】:

    猜你喜欢
    • 2013-12-07
    • 2012-03-01
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多