【问题标题】:How to read de Exchange Database?如何读取 de Exchange 数据库?
【发布时间】:2009-02-10 15:58:49
【问题描述】:

我正在创建一个应用程序,该应用程序必须从 Microsoft Exchange 读取和更新联系人信息(如电话号码、电子邮件等)...

有人知道如何连接到 MS Exchange DB 吗??

【问题讨论】:

    标签: c# database visual-studio exchange-server


    【解决方案1】:

    WebDAV 是我使用的...

    这是我编写的用于访问我们的交换服务器的函数(请善待我多年前编写的)..(:

     /// <summary>
        /// Returns XML string for a specific query
        /// </summary>
        /// <param name="Query"></param>
        /// <param name="Account"></param>
        /// <param name="Folder"></param>
        /// <returns></returns>
        private string ProcessRequest(string Query, string Account, string Folder) {
    
         System.Net.WebRequest req = WebRequest.Create("http://" + MailServer + "/exchange/" + Account + "/" + Folder);
          req.Headers.Add("Depth", "1");
          req.Headers.Add("Brief", "t");
          req.Credentials = ncCurrent;
    
          Byte[] bytes  = System.Text.Encoding.ASCII.GetBytes(Query);
          req.ContentType = "text/xml";
          req.ContentLength = bytes.Length;
          req.Method = "SEARCH";
    
          System.IO.Stream oStreamOut = req.GetRequestStream();
          oStreamOut.Write(bytes, 0, bytes.Length);
          oStreamOut.Close();
    
          WebResponse rsp = req.GetResponse();
          System.IO.Stream oStreamIn = rsp.GetResponseStream();
          System.IO.StreamReader oStreamRead = new System.IO.StreamReader(oStreamIn);
          return oStreamRead.ReadToEnd();
    }
    

    这是我调用它的方式

      string xmldata = "<?xml version= \"1.0\"?>" +
        "<g:searchrequest xmlns:g=\"DAV:\">" +
          "<g:sql> Select \"DAV:href\" , \"urn:schemas:httpmail:subject\" " + 
          "FROM Scope('SHALLOW TRAVERSAL OF \"/exchange/" + Account + "/" + Folder + "\"') " +
          "</g:sql>" +
        "</g:searchrequest>";
    
    
    
      XmlDocument d = new XmlDocument();
      d.LoadXml(ProcessRequest(xmldata, Account, Folder));
    

    希望这会为您指明正确的方向

    【讨论】:

    • hmmm...你能给我更多信息吗...我正在使用 c#,我只想更新/插入 Exchange 联系人信息
    • Eek...我只完成了阅读,但如果你弄清楚那部分,你可以让 知道.. 谢谢.. 我已经成功阅读了日历和收件箱.. 没有' t尝试过任何与联系人有关的事情。有 webdav 的 MSDN 参考,它似乎是一个“标准”......
    • 好吧,Rob 生病调查并让你知道是否找到了有用的东西......谢谢任何方式
    【解决方案2】:

    您必须使用扩展 MAPI,它不是标准的 SQL 数据库。

    【讨论】:

    • hmmm...你能给我更多信息吗...我正在使用 c#,我只想更新/插入 Exchange 联系人信息
    【解决方案3】:

    如果您使用的是 Exchange 2007,则可以使用 Exchange Web Services

    【讨论】:

      【解决方案4】:

      你可以:

      使用扩展 MAPI。在网上寻找 MAPI33。它有你想做什么的例子。

      使用网络服务。这是 2007 年的首选方式

      WebDAV 也可以,但我认为它在 2007 年根本行不通?

      MAPI 是最好的方法,但它在 .NET 中不受官方支持(它可以工作),而且它在 64 位模式下根本不工作。它只有 32 位。

      【讨论】:

        【解决方案5】:

        您可以使用 ExchangeManagmentShell 并发出类似 set-mailbox 之类的 powershell 命令来更改电子邮件地址。

        但如果你只想更新电话号码、房间号码等。这些都存储在 ActiveDirectory 中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-06
          • 2011-04-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多