Как читать базу данных de Exchange? - PullRequest
1 голос
/ 10 февраля 2009

я создаю приложение, которое должно читать и обновлять информацию о контактах (например, номер телефона, адрес электронной почты и т. Д.) Из Microsoft Exchange ...

Кто-нибудь знает, как я могу подключиться к БД MS Exchange ??

Ответы [ 5 ]

2 голосов
/ 10 февраля 2009

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));

надеюсь, это указывает на правильное направление

1 голос
/ 15 апреля 2009

Вы можете:

Использовать ExtendedMAPI. Ищите MAPI33 в сети. Это примеры того, что вы хотите сделать, я думаю.

Используйте веб-сервисы. Это предпочтительный способ в 2007 году

WebDAV также работает, но я не думаю, что он вообще работает в 2007 году?

MAPI - лучший способ, но он официально не поддерживается в .NET (хотя и работает), и он НЕ ВСЕ работает в 64-битном режиме Это только 32 бит.

1 голос
/ 15 апреля 2009

Если вы используете Exchange 2007, вы можете использовать Exchange Web Services

1 голос
/ 10 февраля 2009

Вам придется использовать Extended MAPI, это не стандартная база данных SQL.

0 голосов
/ 28 августа 2012

Вы можете использовать ExchangeManagmentShell и выполнять команды powershell, такие как set-mailbox , чтобы изменить адрес электронной почты.

Но если вы хотите обновить только номер телефона, номер комнаты и т. Д. Все это хранится в ActiveDirectory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...