EWS托管API,获取共享联系人组

时间:2014-04-02 11:18:11

标签: .net ews-managed-api

我正在努力寻找一种方法来做到这一点,到目前为止没有运气。我们应该使用EWS连接到一个帐户,读取可能包含在那里的所有联系人,并将该数据插入自定义数据库中。很容易,我很快就把它运行起来没有问题。

现在,一旦我们不得不将其投入生产,这就出乎意料了。客户拒绝向我们提供将存储联系人的帐户的凭据。他们说他们只会让我们使用其他帐户,并与该帐户共享联系人。现在,我没有问题连接到EWS并获得我所连接的帐户的联系人,但我认为当他们不属于该帐户时,无法获取联系人,但是对于正在共享它们的另一个人。好吧,我知道我们可以实施一些违规行为,但我担心这也不是一个选择...

1 个答案:

答案 0 :(得分:0)

当您与其他邮箱共享联系人时,这些联系人将存储在WellKnownFolderName.Contacts内的联系人文件夹中。在您可以访问此文件夹中的联系人之前,您需要获取FolderId。如果您知道共享联系人文件夹的名称,则可以使用此类文件来查找正确的文件夹。

Folder rootFolder = Folder.Bind(service, WellKnownFolderName.Contacts);
foreach (Folder folder in rootFolder.FindFolders(new FolderView(100)))
{
  if (folder.DisplayName==DisplayName)
  {
    // Put your code here to get the FolderId and store it if necessary
  }
}

现在您拥有共享文件夹的ID,您应该能够使用您的代码来收集联系信息。我能够使用Exchange Online使用几个邮箱。

我希望这会有所帮助。如果这确实解决了您的问题,请将此帖标记为已回答。

谢谢,

---鲍勃---