我目前正在使用 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));
应该这样做