1

Microsoft Exchange から連絡先情報 (電話番号、電子メールなど) を読み取って更新する必要があるアプリケーションを作成しています...

MS Exchange DBに接続する方法を知っている人はいますか??

4

5 に答える 5

2

WebDAVは私が使用しているものです...

これが私がExchangeサーバーにアクセスするために書いた関数です(何年も前に書いたようなものです)。(:

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

hopefully this points you in the right direction

于 2009-02-10T16:13:04.493 に答える
1

拡張MAPIを使用する必要があります。これは標準のSQLデータベースではありません。

于 2009-02-10T16:09:31.820 に答える
0

ExchangeManagmentShell を使用し、 set-mailboxなどのpowershell コマンドを発行して、電子メール アドレスを変更できます。

ただし、電話番号、部屋番号などのみを更新したい場合は. これはすべて ActiveDirectory に保存されます。

于 2012-08-28T13:15:56.400 に答える