EWS:如何查找联系人组的 ItemId



我目前正在使用 Exchange Web 服务 (EWS( 代表我正在模拟的用户创建ContactGroup...

一切正常,这是代码:

var email = "frank@mydomain.com";
var accountPassword = "myPassword";
var emailAccountToImpersonify = "steve@mydomain.com";
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.Credentials = new NetworkCredential(email, accountPassword, "mydomain.com");
service.AutodiscoverUrl(email, RedirectionUrlValidationCallback);
// Make sure the account [frank@mydomain.com] is a member of the ApplicationImpersonation admin role.
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, emailAccountToImpersonify);
// Create a new ContactGroup on behalf of [steve@mydomain.com]
ContactGroup myContactGroup = new ContactGroup(service);
myContactGroup.DisplayName = "Gazou";
myContactGroup.Members.Add(new GroupMember("user1@contoso.com"));
myContactGroup.Members.Add(new GroupMember("user2@contoso.com"));
myContactGroup.Members.Add(new GroupMember("user3@contoso.com"));
myContactGroup.Save();

在创建ContactGroup Gazou之前,我想做的是:

  • 验证联系人组Gazou是否已存在(或不存在(。
  • 如果是,请将其删除,以便可以再次创建它。

像这样:

ContactGroup existingContactGroup = ContactGroup.Bind(service, **ItemId**);
if (existingContactGroup != null)
{
existingContactGroup.Delete(DeleteMode.HardDelete);
}
else
{
// Create a new ContactGroup on behalf of [steve@mydomain.com]
ContactGroup myContactGroup = new ContactGroup(service);
myContactGroup.DisplayName = "Gazou";
myContactGroup.Members.Add(new GroupMember("user1@contoso.com"));
myContactGroup.Members.Add(new GroupMember("user2@contoso.com"));
myContactGroup.Members.Add(new GroupMember("user3@contoso.com"));
myContactGroup.Save();
}

但是我似乎不知道如何找到该ContactGroup的ItemId。 我对ContactGroup的了解只有DisplayName加祖

您只需要搜索存储组的"联系人"文件夹,并在显示名称上使用搜索过滤器,例如

SearchFilter sfSearch = new SearchFilter.IsEqualTo(ContactGroupSchema.DisplayName, "NameOfGroup");
FindItemsResults<Item> findCgResults = service.FindItems(WellKnownFolderName.Contacts, sfSearch, new ItemView(1));

应该这样做

最新更新